Our social:

3 Kasım 2013 Pazar

C'de girilen sayının asal olup olmadığını bulma

Bu yazıda klavyeden girilen bir sayının asal olup olmadığını bulan programın nasıl yazılabileceğini anlatacağım. Kendisi ve 1'den başka tam böleni olmayan sayılara asal sayı deniyor. Programı yazarken de for döngüsü oluşturacağım ve programın tam bölenlerini bulacağım.

Tam bölen demek, bölenden kalan 0 demek. Bu durumda % işaretiyle kalanın 0 olup olmadığını kontrol etmek gerekiyor.

Öncelikle i, sayi ve 0'a eşit olan sayac adında integer değişkenler oluşturuyorum.

int i,sayi,sayac=0;

Ardından kullanıcının sayı girmesini istiyorum. scanf komutuyla sayıyı kullanıcıdan alıyorum.

printf("Sayiyi girin : ");
scanf("%d",&sayi);

Daha sonra bir for döngüsü oluşturuyorum ve 2'den başlatarak <sayi olana kadar devam ediyorum.

Döngümün içine bir if şartı koyuyorum ve eğer kalan 0 ise sayac değişkenini 1 arttırıyorum.

for(i=2;i<sayi;i++)
    {
       if(sayi%i==0)
       {
           sayac++;
       }    
    }  

Son olarak sayac değişkenini kontrol ediyorum. Eğer sayaç 0'a eşit ise kalansız böleni yok demektir. Yani sayı asaldır. Aksi taktirde ise sayı asal değildir.

if(sayac==0)
    {
        printf("Asal");                    
    }
    else
    {
        printf("Asal degil"); 
    }

Programı çalıştırdığımda ve bir sayı girdiğimde aşağıdaki gibi bir ekranla karşılaşıyorum.




Kodun tamamı :


#include<stdio.h>
#include<conio.h>

main()
{
    int i,sayi,sayac=0;
    printf("Sayiyi girin : ");
    scanf("%d",&sayi);
    
    for(i=2;i<sayi;i++)
    {
       if(sayi%i==0)
       {
           sayac++;
       }    
    }     
    
    if(sayac==0)
    {
        printf("Asal");                    
    }
    else
    {
        printf("Asal degil"); 
    }
    
    getch();
}



9 yorum:

Seda Lafçı dedi ki...

çok işime yaradı sağolun cok tesekkürler!

Unknown dedi ki...

Bro kodlarda hata var sadece 10 A kadar çalışıyor 10 dan büyük sayılarda çalışmıyor

Unknown dedi ki...

Bro kodlarda hata var sadece 10 A kadar çalışıyor 10 dan büyük sayılarda çalışmıyor

Hamit Zor dedi ki...
Bu yorum yazar tarafından silindi.
Hamit Zor dedi ki...

ben yeni başladım c'ye. kaynak kodum şu şekilde.

#include
#include
#include
int main(){
double bolunen,bolen=2,kalan;
printf("\nTest edilecek birden buyuk sayiyi giriniz:");
scanf("%lf",&bolunen);
if(bolunen==2)
printf("%.0lf sayisi asaldir.\n",bolunen);
else
kalan=fmod(bolunen,bolen);
while(kalan!=0&&bolen!=bolunen)
{
bolen++;
kalan=fmod(bolunen,bolen);
if(bolen==bolunen)
printf("%.0lf sayisi asaldir.\n",bolunen);
}
if(bolen==bolunen);
else
printf("%.0lf sayisi asal degildir.\n",bolunen);

system("pause");
return 0;
}

Adsız dedi ki...

paylaşım için teşekkürler

üryen uğur kem dedi ki...

eyw kardes

esraaaa dedi ki...

girilen asal sayıdan sonraki 5 asal sayıyı ekrana yazan program

esraaaa dedi ki...

nasıl olcak