C Dili ile İstenilen Sayıya Kadar Olan Asal Sayıları Getirme

0
249

C Dili ile İstenilen Sayıya Kadar Olan Asal Sayıları Getirme


Bu yazımızda internette çok meşhur olan asal sayı bulma algoritmasını paylaşacağız. Yalnız bizim algoritmamız biraz daha açıklayıcı olacak.

Bilmeyenler için asal sayı nedir?

Asal sayı kendinden ve 1’den başka hiçbir sayıya bölünmeyen sayıya denir.

Kodumuzu yazarken kullandığımız mantık şudur;

Hangi sayıya kadar bulunacağı kullanıcıdan alınır. i = 2 (en küçük asal sayı)’ den sayıya kadar olan sayıları döndüren döngü yazılır. Döngü içerisinde yeni bir for döngüsü ile j = 2’den i-1 e kadar olan sayıları döndüren döngü yazılır. Bu döngü içerisinde i değeri ile j değerinin modu alınır. i Sayısı, kendinden küçük ve 1’den büyük olan herhangi bir sayıya bölünürse sonuc adındaki değişkenimizi 1′ e eşitliyoruz. Daha sonra 2.for döngüsünün dışında sonuc değişkenimizi kontrol ediyoruz.Eğer sonuc= 1 ise i sayısı kendinden küçük ve 1’den büyük herhangi bir sayı ile tam bölünmüş demektir. Bu yüzden sonuc 1 değilse bu sayı asal sayıdır.

Dikkat: Burada sonuc değerine 1 atayıp for döngüsünün dışında kontrol yapmamızın sebebi asal sayının 1’den büyük i’den küçük tüm sayılarla mod’unu almak ve kontrol etmek. For döngüsü dışında işlem bitmiş olduğundan kontrolü for döngüsü dışında gerçekleştiriyoruz.

Kod:
  int hedef,i;
  printf("Hangi Sayiya Kadar Olan Asal Sayilar Getirilsin:");
  scanf("%d",&hedef);
  for (i=2;i<=hedef;i++){
   int j,mod,sonuc=0;

    for (j=2;j<i;j++){
        mod = i % j;
        if (mod==0){
            sonuc = 1;
        }
    }
    if (sonuc==0){
        printf ("%d \n",i);
    }


  }

CEVAP VER