Bir sayının asal olup olmadığını bulan program

Bir sayının asal olup olmadığın sınayan işlev.

Ekran Çıktısı:

[html]
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61
67 71 73 79 83 89 97 101 103 107 109 113 127 131
137 139 149 151 157 163 167 173 179 181 191 193 197
199 211 223 227 229 233 239 241 251 257 263 269 271
277 281 283 293 307 311 313 317 331 337 347 349 353
359 367 373 379 383 389 397 401 409 419 421 431 433
439 443 449 457 461 463 467 479 487 491 499 503 509
521 523 541 547 557 563 569 571 577 587 593 599 601
607 613 617 619 631 641 643 647 653 659 661 673 677
683 691 701 709 719 727 733 739 743 751 757 761 769
773 787 797 809 811 821 823 827 829 839 853 857 859
863 877 881 883 887 907 911 919 929 937 941 947 953
967 971 977 983 991 997
[/html]

Kaynak Kod:

[ads]

[c]

#include <stdio.h>

<strong>int</strong> is_prime(<strong>int</strong> number);

<strong>int</strong> main()
{
<strong>int</strong> i;

<strong>for</strong> (i = 0; i <= 1000; i++)
<strong>if</strong> (is_prime(i))
printf(“%d “, i);
<strong>return</strong> 0;
}
/***************************************/
<strong>int</strong> is_prime(<strong>int</strong> number)
{
<strong>int</strong> i;

<strong>if</strong> (number == 0 || number == 1)
<strong>return</strong> 0;
<strong>if</strong> (number % 2 == 0)
<strong>return</strong> number == 2;
<strong>if</strong> (number % 3 == 0)
<strong>return</strong> number == 3;
<strong>if</strong> (number % 5 == 0)
<strong>return</strong> number == 5;

<strong>for</strong> (i = 7; i * i <= number; i += 2)
<strong>if</strong> (number % i == 0)
<strong>return</strong> 0;
<strong>return</strong> 1;
}
[/c]

Bir sayının asal olup olmadığını bulan program” için 2 yorum

  • 23 Haziran 2012 tarihinde, saat 00:24
    Permalink

    ASAL SAYI TESPİT YÖNTEMİ

    A) HERHANGİ BİR TAM SAYININ ASAL SAYI OLMASI İÇİN; KARE SAYI OLMAMASI GEREKİR. ÇÜNKÜ KARE SAYI DEMEK ÇARPANI TAM SAYI OLAN SAYI DEMEKTİR.

    B) KENDİNDEN VE 1 DEN BAŞKA SAYIYA TAM OLARAK BÖLÜNMEMESİ GEREKİR.

    BU TANIMA UYAN ÇİFT SAYILARDAN SADECE 2 ASAL SAYIDIR

    TEK SAYILARDA ASAL SAYI BULMA YÖNTEMİ

    1) HERHANGİ BİR A TEK SAYISININ ASAL SAYI OLMASI İÇİN; KARE SAYI OLMAMASI GEREKİR. ÇÜNKÜ KARE SAYI DEMEK ÇARPANI TAM SAYI OLAN SAYI DEMEKTİR YANİ A TEK SAYISI KARE SAYI İSE ASAL SAYI DEĞİLDİR. 1 SAYISI KARE SAYI OLDUĞU İÇİN ASAL SAYI DEĞİLDİR.

    2) BU A TEK SAYISI KENDİNE EN YAKIN KENDİNDEN BÜYÜK KARE SAYIDAN ( B KARE SAYISINDAN ) ÇIKARILDIĞINDA ELDE EDİLEN FARK ( C SAYISI ) KARE SAYI İSE KAREKÖK C SAYISI B SAYISINDAN ÇIKARILIR FARK 1 İSE A SAYISI ASALDIR.

    ÇÜNKÜ BU FARK A SAYISININ KARE KÖKÜNDEN KÜÇÜK EN BÜYÜK ÇARPANIDIR. BU SAYI 1 İSE A SAYISI ASAL SAYIDIR 1 DEN BÜYÜK İSE A SAYISI ASAL DEĞİLDİR

    ( B KARE ) – ( C ) = A İSE ( C SAYISI KARE SAYIDIR ) İKİ KARE FARKINDAN

    (B – ( KAREKÖK C ) ) X ( B + ( KAREKÖK C ) ) = A

    BAĞINTISINDAN (B – ( KAREKÖK C ) ) SAYISININ A SAYISININ KAREKÖKÜNDEN KÜÇÜK EN BÜYÜK TAMSAYI ÇARPANI OLDUĞU KANITLANIR.

    A SAYISI 5 DEN BÜYÜK İSE VE C SAYISI KARE SAYI İSE A SAYISI ASAL SAYI DEĞİLDİR DİYE HEMEN SÖYLENE BİLİR. ÇÜNKÜ C SAYISININ KAREKÖKÜ B SAYISINDAN ÇIKARILDIĞINDA DAİMA 1 DEN BÜYÜK ÇIKACAKTIR.

    SEBEBİ: VERİLEN ( A ) TEK SAYISI, KENDİSİNE EN YAKIN KÜÇÜK VE BÜYÜK İKİ KARENİN FARKINDAN BÜYÜKSE
    BU TEK SAYI BÜYÜK OLAN KARE SAYIDAN ( B KARE ) ÇIKARILDIĞINDA FARK ( C ) KARE SAYI İSE
    BÜYÜK KARE SAYININ KARE KÖKÜNDEN FARKIN KARE KÖKÜ ÇIKARILDIĞINDA
    ( B – ( KAREKÖK C ) FARK DAİMA 1 DEN BÜYÜKTÜR.
    ÖRNEK VERECEK OLURSAK 100 İLE 121 ARASINDA BİR TEK SAYININ 121 DEN FARKI KARE SAYI İSE BU KARE SAYI 21 E KADAR OLAN KARE SAYILARDIR DAHA BÜYÜĞÜ DEĞİLDİR. YANİ 1,4,9,16 DIR. BU SAYILARIN HİÇ BİRİNİN KARE KÖKÜ 121 İN KARE KÖKÜ OLAN 11 DEN ÇIKARILDIĞINDA 1 SAYISINI VERMEZ

    3) C SAYISI KARE SAYI DEĞİL İSE C SAYISI 2B + 1 SAYISINDAN BAŞLAYARAK ARDIŞIK OLARAK GELEN TEK SAYILARLA ARD ARDA TOPLANIR TOPLAMIN İLK KARE SAYI OLDUĞU SAYI C’ SAYISIDIR BU C’ SAYISI KAÇTANE TEK SAYI C SAYISINA EKLENEREK ELDE EDİLMİŞ İSE O KADAR SAYI B SAYISINA EKLENİR VE B’ SAYISI BULUNUR B’ SAYISINDAN C’ SAYISININ KAREKÖKÜ ÇIKARILIR FARK 1 İSE SAYI ASAL SAYIDIR. FARK BİRDEN BÜYÜK İSE SAYI ASAL SAYI DEĞİLDİR.

    BU FARK A SAYISININ KARE KÖKÜNDEN KÜÇÜK EN BÜYÜK ÇARPANIDIR. BU SAYI 1 İSE A SAYISI ASAL SAYIDIR 1 DEN BÜYÜK İSE A SAYISI ASAL DEĞİLDİR

    ÖRNEK
    KARE SAYI OLMAYAN BİR A TEK SAYISI ALIYORUZ
    A SAYISININ KARE KÖKÜNÜ YUKARI YUVARLAYIP TAM SAYIYA ÇEVİRİP B SAYISINI ELDE EDİYORUZ
    B KAREDEN A SAYISINI ÇIKARIP C SAYISINI ELDE EDİYORUZ.
    C SAYISI KARE SAYI DEĞİL İSE C + ( 2B + 1) + ( 2B + 3 ) + … ( 2B + n ) = C’
    1 2 X
    ( B + X ) = B’

    B’ – ( KAREKÖK C’ ) = A SAYISININ KARE KÖKÜNDEN KÜÇÜK EN BÜYÜK ÇARPANIDIR. BU SAYI 1 İSE A SAYISI ASAL SAYIDIR 1 DEN BÜYÜK İSE A SAYISI ASAL DEĞİLDİR.

    HEM C SAYISI KARE SAYI ÇIKTIĞINDA HEMDE KARE KÖK C’ SAYISI B’ SAYISINDAN ÇIKARILDIĞINDA 1 DEN BÜYÜK BULUNDUĞUNDA ARDIŞIK TEK SAYILAR TOPLANMAYA DEVAM EDİLİNCE A SAYISININ DİĞER ÇARPANLARIDA BULUNUR. EN SON TEK SAYI A SAYISI DEĞERİNDEDİR VE X = (( A + 1) / 2 ) – B ) SIRASINDADIR (B’ – ( KAREKÖK C’ ) ) = 1 OLUR DAHA SONRAKİ TEK SAYILAR TOPLANMAYA DEVAM EDİLSE BİLE KARE SAYI OLUŞMAZ.

    ASAL SAYILAR HAKKINDA YANLIŞ BİLİNENLER
    1) ASAL SAYILAR GİTTİKÇE AZALAN SAYILAR DEĞİLDİR. ÇÜNKÜ ASAL SAYILAR EŞİT ARALIKLARDAKİ SAYILAR DEĞİL KARE SAYILAR ARALIĞINDAKİ SAYILARDIR.
    2) MERSENNE ASALLARI MOD 3 E GÖRE 1 OLAN ASAL SAYILARDIR MOD 3 E GÖRE 2 OLAN ASALLARI VERMEZ YANİ BÜTÜN ASALLARI KAPSAMAZ.

    İRFAN AYDOĞAN
    doktor0906@hotmail.com

    EXCEL DOSYASI TOPLAM 3 SAYFA OLARAK HAZIRLADIM

    3. SAYFADA ARDIŞIK TEK SAYILARIN KAÇINCISI TOPLANDIĞINDA KARE SAYI OLUŞUYOR İSE ONU HESAPLAYAN BİR YÖNTEM UYGULADIM VE BİR SAYININ KARE KÖKÜNDEN KÜÇÜK KAÇTANE BÖLENİ OLDUĞUNU HESAPLAYAN TABLO GÖRECEKSİNİZ. YAPMANIZ GEREKEN TEST SAYISI YAZAN SOL ÜST KÖŞEDEKİ YERDEKİ RAKAM KISMINA ONYEDİ MİLYARA KADAR TEK SAYI YAZIP TEST EDEBİLİRSİNİZ. 1 HARİÇ DOĞRU SONUÇ VERİR 1 İN ASAL SAYI OLMADIĞINI GÖSTEREN FARKLI BİR ALGORİTMA YAPILMASI GEREKİR ŞU AN MÜSAİT DEĞİLİM

    2.SAYFADA ÇARPIM TABLOSU VE 105 SAYISI İÇİN HAZIRLANMIŞ ÇİZELGE VE TABLO BULACAKSINIZ BU ÇİZELGE HESAPLAMANIN NASIL YAPILACAĞI İLE İLGİLİ BİLGİ AMAÇLI YAPILMIŞTIR.
    Fark sayısı yukarda bahsettiğim 2B -1 in çaprazındaki 0 noktasından başlayarak 2B + 1 ve devamındaki ardışık tek sayıların toplamına eklenir kare sayı olan yerde durulur gerekli hesaplamalar yapılarak sayının asal olup olmadığına karar verilir

    1. SAYFADA ARDIŞIK TEK SAYILAR TEK TEK TOPLANARAK KARE KÖKÜ TAM SAYILARA BAKILARAK KAÇINCI SIRADA KARE SAYI OLUŞTUĞU TESPİT EDİLDİĞİNİ GÖSTEREN TABLODUR.

    asal sayı dosyasını indirmek için
    mynet.com
    üye adı
    asalsayidos
    şifre
    123124
    e-maillerden sol alt köşede dosya deposu, açılan sayfadan sol üst köşede benimle paylaşılanlar dosyasını ındirmeniz gerekiyor

    BİLGİ PAYLAŞTIKÇA ÇOĞALIR LÜTFEN MYNET E-MAİL ÜYE ADI VE ŞİFRESİNİ DEĞİŞTİRMEYİNİZ

    İRFAN AYDOĞAN
    doktor0906@hotmail.com

    Yanıtla
  • 23 Nisan 2014 tarihinde, saat 22:23
    Permalink

    Selam, ben bir adım ileri gittim. yani mersenne buluyorum. asal üstü asal yani. bunu şundan diyorum ki, bu programın exe halini bana ulaştırabilir iseniz, fakat 100milyar hane işlem yapmak zorundayız. Bu durumda, program sonucunda işlem yapınca, programı gönderene 10bin dolar öneriyorum. formül şu 2üstü asal – 1 = Mersenne(yani asal) ise diye bir ek kod eklemeniz gerekiyor. 2 üstü asala P deniyor. Ben P ve Yeni mersenneler buldum ama ispat için 2lik sistemde dijit eksik. prime95 v27.9 kullanıyorum o da 9 dijit hesap yapıyor anlayacağınız bana 20 dijit lazım yani.emailim erseldag94@gmail.com saygılar.

    Yanıtla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir