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();
}
0 yorum: