folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Javascript İle Asal Sayı İşlemleri



Javascript İle Asal Sayı İşlemleri

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    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.

    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 = '<strong>' + intSayi + '</strong> sayısı asaldır.';
        }
        else {
         strYazi = '<strong>' + intSayi + '</strong> sayısı asal değildir.';
         strYazi = strYazi + '<br />';
         strYazi = strYazi + 'Bu sayı <strong>' + i + '</strong> sayısına tam bölünmektedir.';
        }
        document.getElementById("sonuc").innerHTML = strYazi;
       }
      }
     }
    }

    Şimdi ise HTML betiklerini hazırlayalım.

    <input type="text" id="sayi" />
    <button onclick="javascript: return fnHesapla();">Asal mı?</button>
    <span id="sonuc"></span>

     

    Kaynak: JavaScript ile Asal Sayı İşlemleri

     

     

     


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Abi konu dışı ama

    Örneğin 1 den 100 e kadar olan sayların toplamını bulan programı yazın desek.

    %90 şu cevabı verir..

    for(var i = 1;i<=10;i++)
    {
    Toplam+=i;
    }

    Ama neden şu yöntemi kimse kullanmaz.

    Toplam=(10.0*(10.0+1.0))/2;

    Aradaki farka bakılınca pek bi hız farkı yok ama işlem uzayınca böyle oluyor. 

    Yapmış olduğun işe kesinlikle laf etmiyom biliyosun beni :D Sadece merak ettim Asal Sayı bulma mantığın da aynı da


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Muhammed, aslında toplamı benim yazdığım betiklerde bulmak zor. Çünkü ilk bulduğu bölende hemen döngüyü durduruyor. Dolayısıyla belirli bir noktaya kadar olan toplamlar ortaya çıkar.

    Yada ben bu saatler de kafam çok fazla çalışmadığı için dediklerini anlayamadım :).

    Verdiğin yönteme bakmak gerek. Bir dizinin vs.. tam olarak asalları verdiğini hatırlamıyorum.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Bir sayının asal olup olmama teoremine ve ispatına bakmak gerekiyor ben bilmiyorum da.  Bu kadar uzatmaya gerek yok gibi düşünüyorum :(


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Bir sayının asal olup olmama teoremine ve ispatına bakmak gerekiyor ben bilmiyorum da.  Bu kadar uzatmaya gerek yok gibi düşünüyorum :(


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    MhmdAlmz bunu yazdı

    Abi konu dışı ama

    Örneğin 1 den 100 e kadar olan sayların toplamını bulan programı yazın desek.

    %90 şu cevabı verir..

    for(var i = 1;i<=10;i++)
    {
    Toplam+=i;
    }

    Ama neden şu yöntemi kimse kullanmaz.

    Toplam=(10.0*(10.0+1.0))/2;

    Aradaki farka bakılınca pek bi hız farkı yok ama işlem uzayınca böyle oluyor. 

    Yapmış olduğun işe kesinlikle laf etmiyom biliyosun beni :D Sadece merak ettim Asal Sayı bulma mantığın da aynı da

    Hocam zaten cevabın 55 çıkıyor işlem hatası yapmışsın.

    Diğer bir mantıkla o zaman direk cevabı yazalım :)

    Formülü uygulamak güzel bir yöntem olurdu. İlk terim son terim şeklinde fakat asal sayılarda formülümüz de yok maalesef. Bu yüzden gizemli zaten

    Edit: 1den 100e kadar deyip 1den 10a kadar yapmışsın :)

    by_Tet tarafından 28/Eyl/16 03:36 tarihinde düzenlenmiştir

    iyibu! yeniden..
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    by_Tet bunu yazdı
    MhmdAlmz bunu yazdı

    Abi konu dışı ama

    Örneğin 1 den 100 e kadar olan sayların toplamını bulan programı yazın desek.

    %90 şu cevabı verir..

    for(var i = 1;i<=10;i++)
    {
    Toplam+=i;
    }

    Ama neden şu yöntemi kimse kullanmaz.

    Toplam=(10.0*(10.0+1.0))/2;

    Aradaki farka bakılınca pek bi hız farkı yok ama işlem uzayınca böyle oluyor. 

    Yapmış olduğun işe kesinlikle laf etmiyom biliyosun beni :D Sadece merak ettim Asal Sayı bulma mantığın da aynı da

    Hocam zaten cevabın 55 çıkıyor işlem hatası yapmışsın.

    Diğer bir mantıkla o zaman direk cevabı yazalım :)

    Formülü uygulamak güzel bir yöntem olurdu. İlk terim son terim şeklinde fakat asal sayılarda formülümüz de yok maalesef. Bu yüzden gizemli zaten

    Edit: 1den 100e kadar deyip 1den 10a kadar yapmışsın :)

    Yapma hocam :( ona mı takıldın vesselam :D ek olarak vardır elbet bir yöntemi bakmak lazım :D 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!