Fermat Sayıları ve Fermat Asal Kontrolü

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

Fermat sayıları; n sıfırdan küçük olmayan bir tam sayı olmak üzere, (2^(2^n)+1) şeklinde yazılabilen sayılardır. İsimlerini, bu sayıları ilk kez incelemiş olan 17. yüzyıl matematikçisi Pierre de Fermat'dan alırlar. Bu sayılardan ilk beşi asal sayıdır ve bu sayılara fermat asalı denir. Fermat ,1650'de tüm Fermat sayılarının asal olduğunu ileri sürmüş, fakat Leonhard Euler 1732'de 5. sayıyı (4294967297) iki çarpana ayırarak bu iddiayı çürütmüştür (641*6700417=4294967297). Kaynak için tıklayın

PHP ile değerin Fermat sayısı olup olmadığına bakalım.

  • function fermatMi($param){
  • $sayac=0;
  • while($sayac<10){
  • $islem=pow(2,pow(2,$sayac))+(1);
  • if($islem==$param)
  • return 1;
  • $sayac++;
  • }
  • return 0;
  • }

Yukarıdaki fonksiyonda while döngüsüne 10 değerini verdim çünkü üs alındığında (2^(2^10)+1) sonucu sonsuz, INF döndürüyor). Eğer işlem sonucu verilen parametreye eşit ise 1 return ediyor. Örnek kullanımı aşağıda verilmiştir.

  • $sayilar=array(3,61,5,1461,65537,4294967297);
  • for($i=0;$i
  • echo fermatMi($sayilar[$i])==1 ? $sayilar[$i]." fermat
    ":$sayilar[$i]." fermat değil
    ";
  • }

Devamında ise fermat asal kontrolünü gerçekleştiren fonksiyonu kodlamayalım. 

  • function fermatAsaliMi($param){
       if(asalMi($param))
           if(fermatMi($param))
               return 1;
               
       return 0;        
    }

Örnek kullanımı için yine sayılar dizisinden gidelim.

  • for($i=0;$i<count($sayilar);$i++){
       echo fermatAsaliMi($sayilar[$i])==1 ? $sayilar[$i]." fermat asalı<br>":$sayilar[$i]." fermat asalı değil<br>";
    }

omurs

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

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)

genel Kategori

Atlassian

Superapp

Bootstrap Modal Yalnızca "X" Düğmesiyle Kapatılması