IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   C ve C++ (https://www.ircforumlari.net/c-ve-c/)
-   -   Asal Parçala (https://www.ircforumlari.net/c-ve-c/456487-asal-parcala.html)

aSi 25 Şubat 2012 19:44

Asal Parçala
 
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

int isprimex(long number);
isprimex fonksiyonuna gönderilen argumanın asal olup olmadığı test edilecek, eğer sayı asal ise bu kez sayının basamak değerleri toplanarak elde edilen sayının asal olup olmadığı test edilecektir. Bu işlem sonuçta tek basamaklı bir sayı kalana kadar devam edecektir. Eğer en son elde edilen tek basamaklı sayı dahil tüm sayılar asal ise “tüm sayılar asaldır” değeri geri dönecektir. Eğer herhangi bir kademede asal olmayan bir sayı elde edilirse fonksiyon “”tüm sayılar asal değildir.”değeri geri dönecektir.
Ekran girişi 1: 19001……………..> asal 1+9+0+0+1=11……>asal 1+1=2…………….>asal
Ekran girişi 2: 997……………..> asal 9+9+7=25..……>asal değil
Ekran çıktısı 1: Tum sayılar asaldır.
Ekran çıktısı 2: Tum sayılar asal değildir.



Kod:

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

int isprimex(long number);

main()
{
    long n;
    printf("Sayi Giriniz : ");
    scanf("%d",&n);
    if(isprimex(n)==1)
    printf("\nTum sayilar asaldir");
    else
    printf("\nTum sayilar asal degildir");
    getch();

}
int isprimex(long x)
{
    bas:
    int i,sayac=0;
    long toplam=0;
    for(i=2; i<x; i++)
    {
        if(x%i==0)//kendine kadar baska bir sayiya bolunmezse sayac değişmez..
        sayac++;//.. ve bu da sayinin asal oldugunu gosterir.
    }

    if(sayac!=0)//asal değilse..
    return 0;//..0 döndürür.


    if(x==2 || x==3 || x==5 || x==7)//sayilar sürekli kendini çağırıp tek haneli sayilara dönüşecek.
    return 1;                      //tek haneli asala kadar program dönerse 1 döndürür.

    while(x>0)
    {
        toplam+=(x%10);//en sağdaki sayıyı alırız ve sonra..
        x/=10;//..en sağdaki sayıyı sileriz.
    }
    x=toplam;
    if(toplam>0)//en kucuk degeri almamıssa programı surdur.
    goto bas;//goto yerine rekürsif de yapabilirdik.
}




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 15:37.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk