wmaraci reklam
lidertakipci

JavaScript ile Asal Sayı İşlemleri

2 Mesajlar 914 Okunma
advertseo
wmaraci reklam

ontedi ontedi www.ontedi.com Kullanıcı
  • Üyelik 03.10.2013
  • Yaş/Cinsiyet 44 / E
  • Meslek Yazılım Uzmanı, Matematikçi
  • Konum Ankara
  • Ad Soyad S** T**
  • Mesajlar 1119
  • Beğeniler 325 / 324
  • Ticaret 2, (%100)
JavaScript ile bir sayının asal olup olmadığını kontrol ediyoruz.
Matematik ve çeşitli dalların (Şifreleme) gizemli konusudur "Asal Sayılar". Tanım olarak "1 ve kendisinden başka böleni yoktur" kısaca bir şeyler söyleyebiliriz.
Asal sayılarla ilgili şöyle bir örnek verebiliriz. "17 ile 19 sayısının çarpımı nedir?" diye bir soru sormuş olsak cevabı kısa sürede "323" olarak bulabiliriz, peki "323 sayısının bölenleri nelerdir?" dersek. İşte bu noktada sayıyı analiz etmemiz gerekecektir.
Sırayla; 2'ye, 3'e, 4'e, 5'e vs.. bölününebiliyor mu diye denemeler yapacağız. Yani; bölme işlemi, çarpma işleminden daha fazla zaman almaktadır. İşte bu noktada şifreleme sistemlerinin bir kısmında "bölme işlemi" ve de "asal bölenler" devreye girmektedir.
Şimdi ise gelelim "Asal Sayı" kavramına. Tanım olarak "1 ve kendisinden başka böleni yoktur" şeklinde kısa bir tanımlama yapmıştık. Örnekler vermeye çalışalım. "2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37..." şeklinde herhangi bir dizilim kuralı olmayan sayılar topluluğudur.
Örnek: 17 sayısı "1" ve "17" harici pozitif bir tamsayıya bölünememektedir.
Bir başka örnek ise 77 sayısının asal olup olmadığını bilmediğimizi varsayalım. Bu sayıyı sırasıyla asal bölenlere bölme yoluna gidelim.
2'ye tam olarak bölünemiyor. 3'e tam olarak bölünemiyor. 5'e tam olarak bölünemiyor. 7'ye tam olarak bölünmektedir.
Burada bakmamız gereken hususlardan birisi, bölünecek sayının karekök değerine kadar olan sayıları teker teker sayının böleni olup olmadığına bakmaktır. Sayının tamamına kadar ilerlemeyi önlemiş olduk.
Şimdi ise bu hesaplamayı JavaScript üzerinde programlayarak bir sistematiğe oturtmuş olacağız.

JavaScript Betikleri

function fnHesapla() {
var intSayi = document.getElementById("sayi").value;
if (intSayi.length < 1 || isNaN(intSayi)) {
alert("Lütfen sayısal bir değer giriniz!");
}
else {
if (intSayi < 3) {
alert("Lütfen 3'ten büyük bir sayı giriniz!");
}
else {
if (intSayi % 2 == '0') {
alert("Girdiğiniz sayı çift bir sayıdır.\nLütfen tek bir tamsayı giriniz!");
}
else {
var intSon_Sayi = Math.floor(Math.sqrt(intSayi));
intSon_Sayi = intSon_Sayi + 1;
var intTam_Bolen_Sayisi = 0;
for (i = 3; i <= intSon_Sayi; i++) {
var realBolum = intSayi / i;
if (realBolum.toString().indexOf(".") == -1) {
intTam_Bolen_Sayisi = intTam_Bolen_Sayisi + 1;
break;
}
}
if (intTam_Bolen_Sayisi == 0) {
strYazi = '' + intSayi + ' sayısı asaldır.';
}
else {
strYazi = '' + intSayi + ' sayısı asal değildir.';
strYazi = strYazi + '
';
strYazi = strYazi + 'Bu sayı ' + i + ' sayısına tam bölünmektedir.';
}
document.getElementById("sonuc").innerHTML = strYazi;
}
}
}
}


HTML Betikleri






Kaynak ve Örnek: JavaScript ile Asal Sayı İşlemleri
GrafikYazilim06

kişi bu mesajı beğendi.

www.ontedi.com
www.cizgi.site
wmaraci
reklam

GrafikYazilim06 GrafikYazilim06 WM Aracı Kullanıcı
  • Üyelik 01.06.2016
  • Yaş/Cinsiyet 41 / E
  • Meslek Grafiker, Yazılımcı
  • Konum Ankara
  • Ad Soyad A** K**
  • Mesajlar 188
  • Beğeniler 121 / 63
  • Ticaret 14, (%100)
Çok güzel bir script olmuş, elinize sağlık. :) Sayı asal mı, değil mi bunu söylemesinin yanında hangi sayılara tam olarak bölünebildiğini de gösteriyor.

16 basamaktan sonraki tüm sayılarda girdiğiniz sayı çifttir şeklinde uyarı veriyor. Değişken boyutlarının sınırlarından dolayı sanırım. Dediğiniz gibi özellikle şifreleme vb. alanlarda asal sayıların çok önemli olduğundan bahsediliyor. Kuantum bilgisayarların bu alanda çığır açacağı vb. söyleniyor.
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al