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

Cevap