Kendisine En Yakın Asal Sayıyı Bulan C Programı {Versiyon 1.2}

Merhabalar bu yazımızda sizlere dışarıdan girilen bir sayıya eğer asal değilse kendisine en yakın (büyük veya küçük) asal sayıyı bulan C programlama dili kodlarını paylaşacağız.

Daha önceden C dili ile kendisine en yakın asal sayıyı veren kodları paylaşmıştık. O yazıya buradan ulaşabilirsiniz. Bu yazıda paylaştığımız kodlarda bir sayıya kendisinden küçük en yakın asal sayıyı buluyordu. Ama kendisinden büyük olan sayıları kontrol etmiyordu. Bu yüzden programımızı geliştirdik ve versiyon 1.2‘yi sizlere sunuyoruz. Bu programda ise yine sayıya bakıyor eğer sayı asal değilse kendisine yakın hem küçük hem büyük sayıları kontrol ediyor. Hangisi daha yakınsa onu ekrana çıkartıyor. Eğer iki taraf da aynı eşitlikte yakınsa ikisini de ekrana yazdırıyor.

Şimdi lafı uzatmadan sizlere kendisinden hem büyük hem küçük sayıları kontrol eden kendisine en yakın asal sayıyı bulan programın C dilindeki kodlarını paylaşalım;

Gördüğünüz gibi kodlar bu şekildedir arkadaşlar. Şimdi örnek bir ekran çıktısı paylaşalım.

Örneğin yukarıda da gördüğünüz gibi 120 sayısını girdik. Bu sayı asal değil diye bizlere belirtti. Ardından “120 sayısına en yakın asal sayılar 127 ve 113 ‘dür” diye program bizlere çıktı verdi. Fakat önceki versiyonda dediğimiz gibi sadece kendisinden küçük olanları kontrol ettirip onu ekrana çıktı olarak verdirmiştik. Ama bu güncellediğimiz versiyonda kendisinden büyükleri de kontrol edecektir. Son olarak eğer sayı asalsa “sayı asaldır” diye çıktı verecektir.

Ayrıca eğer sayı asal değilse ve hem üst hem alt taraftaki sayılar birbirine aynı uzaklıkta değilse yukarıda gördüğünüz gibi kendisine hangisi daha yakınsa onu ekrana çıkartır. Mesela 10 sayısı asal değil. Buna en yakın asal sayılar 7 ve 11 olur. Haliyle programda bunlarında uzaklıklarını kontrol ettirdik ve 11 daha yakın olduğu için onu ekrana çıktı olarak verdik. Siz tabii isterseniz değişiklikler yapabilirsiniz.

Şimdilik bu kadar. Anlamadığınız veya takıldığınız yerler varsa yorum kısmından bizlere yazmayı unutmayınız. Elimizden geldiğince yardımcı oluruz. Teşekkürler iyi çalışmalar dileriz…

NOT = Son olarak bir önceki versiyona yorum atan Doğukan arkadaşımıza teşekkür ediyoruz. Onun ricası sayesinde yeni versiyonunu siteye ekledik. Bu yüzden konuyu faydalı bulanlar bize değil o arkadaşımıza teşekkür ediniz 🙂

YORUMLAR

  1. Cözdüğünüz ornek okunurluk açısından biraz zorlayıcıydı bakış acısı olarak kendi cevabımı paylaşmak istedim ornekler için teşekkurler

    #include
    #include

    void main()
    {
    int sayi;
    int temp;

    printf(“Bir sayi giriniz:”);
    scanf(“%d”,&sayi);

    int kontrol;

    temp=sayi+1;

    /*Asagidaki dongude kontrol yapisi uzerinden kendisinden buyuk en yakin asal sayiyi buluyoruz*/

    while(1){
    kontrol=0;

    for(int i=2;i<temp;i++){
    if(temp%i==0){
    kontrol=1;
    }
    }
    if(kontrol==1){
    temp++;
    }
    else{
    printf("Girdiginiz sayidan sonraki asal sayi: %d",temp);
    break;
    }
    }

    int temp2;

    int kontrol2;

    temp2=sayi-1;

    /*Asagidaki dongude kontrol yapisi uzerinden kendinden kucuk en buyuk asal sayiyi buluyoruz*/

    while(1){
    kontrol2=0;

    for(int i=2;i<temp2;i++){
    if(temp2%i==0){
    kontrol2=1;
    }
    }
    if(kontrol2==1){
    temp2–;
    }
    else{
    printf("\nGirdiginiz sayidan onceki asal sayi: %d",temp2);
    break;
    }
    }
    }

    1. Elinize sağlık hocam çok teşekkür ederiz.

  2. acaba bunu flowchat ile yaparmısınız

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir