sorunu eksik okumusum kusura bakma :) 2010/3/5 Mustafa Arıcı <[email protected]>
> > > 2010/3/5 papatya prenses <[email protected]> > >> 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 >> >> su sekilde kodun daha kisa tutabilir eger istedigin buysa? > > #include<stdio.h> > int divisible(int num, int by){ > //bolunebilirligi test ediyoruz > if (num%by == 0){ > return 1; > } > else{ > > return 0; > } > } > int main (){ > int x=0; > int i,status; > for (x=1;x<=100;x++){ > // sayimizin durumunu ilk olarak asal kabul ediyourz > status = 1; > for (i=2;i<x;i++){ > //eger kendisine gelene kadar her hangi bir boleni varsa 1 den baska > durumunu asal olmayana isaretliyoruz > if (divisible(x,i)){ > ; > } > } > //durumu asal olmayan olarak isaretlenmisse yazdiriyoruz > if (status != 0){ > printf("%d\n",x); > } > } > return 0; > } > > belki daha da kisaltilabilir. > > -- > Mustafa Arıcı > NEU Computer Engineering Student > -- Mustafa Arıcı NEU Computer Engineering Student
_______________________________________________ Linux-programlama mailing list [email protected] http://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
