Site içi arama

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

3 Kasım 2013 Pazar9yorum

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



+ yorum + 9 yorum

23 Ağustos 2015 16:45

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

11 Ekim 2015 17:03

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

11 Ekim 2015 17:03

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

26 Ekim 2015 18:50

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
30 Aralık 2015 21:29

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

16 Eylül 2016 15:15

eyw kardes

8 Aralık 2016 18:14

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

8 Aralık 2016 18:14

nasıl olcak

Yorum Gönder
 
Copyright © 2014. Bilgisayar Mühendisliği Öğrenci Blogu - All Rights Reserved
Proudly powered by Blogger