On Fri, 5 Mar 2010 17:12:43 +0200
papatya prenses <[email protected]> wrote:

> 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?

 OBEB bulmak için büyük sayıdan küçük sayıyı çıkararak gitmek daha rahat olur

>     system("pause");

 Bu kodu DOS/Windows altında mı yazıyorsunuz ? system() kullanmak iyi
bir fikir değil, ayrıca pause un Linux'da yaygın bir komut olduğunu
zannetmiyorum.

 Örnek kod şöyle olabilir;

#include <stdio.h>
#include <unistd.h>

int AralarindaAsal(int j, int k) {
    int t;

    while ( j > 0 ) {
        if ( k > j ) {
            t = j;
            j = k;
            k = t;
        }

        j -= k;
    }

    return k==1;
}


int main(int argc, char *argv[]) {
    int m, n, MAXVAL = 100;

    for (m=2; m < MAXVAL; m++) {
        for (n = 2; n < m; n++) {
            if (AralarindaAsal(m, n))
                printf("%d %d\n", m, n);
        }
    }

    return pause();
}


-- 
 Onur Küçük                                      Knowledge speaks,
 <onur.--.-.delipenguen.net>                     but wisdom listens

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap