Mersenne Asal Sayıları

mersenne-asal-sayilari (büyük resim için tıklayın)

Mersenne Sayılarını daha önce şu gönderide tanımlamıştım. Bu gönderide devam niteliğinde (ya da içerik eksikliğini tamamlamak anlamında !) Mersenne Asal Sayılarını ifade etmeye çalışacağım. Mersenne asal sayıları, hem bir Mersenne sayısı hem de asal olan sayılardır. Giriş niteliğindeki gönderide mersenneSayilariAl isminde fonksiyon mevcuttu ve bu fonksiyon 1'den başlayarak döngü ile INF(Sonsuz) değerine ulaşana kadar (bilgisayar 1024'e kadar işlem yapabildi, ikinin 1024. kuvvetinde sonsuz değerine ulaştı) elde edilen sayıları diziye aktarıyor, eğer elde edilen sayı sonsuz ise o sonsuz değere kadar olan dizileri geriye döndürüp bilgi mesajı yazıp çıkıyordu (parametreye kadar üs alma işleminde sonsuz değere ulaşıldığı düşünüldüğünde). mersenneSayilariAl fonksiyonunu bu gönderide de kullanacağım fakat döngüyü 1'den değilde 2'den başlatacak şekilde revize edeceğim. Şöyleki;

  • function mersenneSayilariAl($limit){
  • $dizi=array(); $sayac=0;
  • for($i=2;$i<=$limit;$i++){
  • $deger=pow(2,$i)-1;
  • if(!is_infinite($deger))
  • array_push($dizi,$deger);
  • else{
  • array_push($dizi,"SONSUZ, sonsuz öncesi üs kuvveti ".$sayac);
  • return $dizi;
  • exit;
  • }
  • $sayac++;
  • }
  • return $dizi;
  • }

Fonksiyonu kullanarak sayıları ekrana yazdırmak için;

  • $sayilar=mersenneSayilariAl(35);
  • echo "";
  • print_r($sayilar);
  • echo "";

kod bloklarını kullandım. Yukarıdaki kod blokları ile 2'nin 35. kuvvetine kadar elde edilen mersenne sayılarını diziye aktardım ve ekrana print_r komutu ile yazdırdım. Şimdi döngü ile $sayilar dizisinin her bir elemanını asal olup olmadığını sorgulayacağım. Asal sayılar ile alakalı şu gönderide tanımlamalar, fonksiyonlar ve kod blokları mevcut. $sayilar dizisinin her bir elemanını asal olup olmadığını sorgulayalım;

  • foreach($sayilar as $sayi){
  • if(asalMi($sayi)==1){
  • echo $sayi."=> hem mersenne hem asal, yani mersenne asal
    ";
  • }
  • }

Örnek ekran çıktısı aşağıdadır;

  • 3=> hem mersenne hem asal, yani mersenne asal
  • 7=> hem mersenne hem asal, yani mersenne asal
  • 31=> hem mersenne hem asal, yani mersenne asal
  • 127=> hem mersenne hem asal, yani mersenne asal
  • 8191=> hem mersenne hem asal, yani mersenne asal
  • 131071=> hem mersenne hem asal, yani mersenne asal
  • 524287=> hem mersenne hem asal, yani mersenne asal
  • 2147483647=> hem mersenne hem asal, yani mersenne asal

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Beğeni


Yıllara Göre Gönderiler








genel Kategori

Black Friday (Kara Cuma)

Siber Pazartesi (Cyber Monday)

KKDF (Kaynak Kullanımı Destekleme Fonu)