merhaba;
1den 100e kadar aralarında asal olan sayıları yazdırması için bir prog.
yazdım. mantık olarak şöyle düşündüm; eğer obebleri 1 ise bu sayılar
aralarında asaldır. önce divi fonksiyonunda obeblerini buluyor sonra mainde
obeblerinin 1 olup olmadığını kontrol ediyor ve 1 ise yazdırıyor. sorum şu:
nasıl bir mantık uygulayayım ki kodları daha kısa yazayım?

kodlar şöyle:

#include<stdio.h>
#include<stdlib.h>
int divi(int a,int b)
{
   int max,min;
    if(a==0||b==0){
        if(a>b)
            return a;
        else
            return b;
    }
    else {
        if(a<b){
            min=a;
            max=b;
        }
        else {
            min=b;
            max=a;
            }

    if(max%min==0)
        return min;
    else
       return divi(max,max%min);
   }}

int main()
{
    for(int x=1;x<100;x++)
        for(int y=1;y<100;y++){
            if(divi(x,y)==1)
                printf("\\\\n%d %d\\\\n",x,y);
                }

    system("pause");
    return 0;
}

teşekkür ederim. iyi günler.
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap