計算兩個數的最大公約數——枚舉法

算法:

step1:設i爲2;

step2:如果a和b都能被i整除,則記下這個i;

step3:i加1後重復第二步,直到i等於a或b;

step4:則曾經記下的最大的能同時整除a和b的i就是最大公約數。

程序:

# include<stdio.h>

int main()
{
   int a,b;
   scanf("%d %d",&a,&b);
   
   int ret=0;
   int min=0;
   
   if(a>b){
       min=b;
   }else{
       min=a;
   }
   
   for(int i=1; i<=min; i++){
       if(a%i==0){
           if(b%i==0){
               ret = i;
           }
       }
   }
   
   printf("%d和%d的最大公約數爲%d\n",a,b,ret);
   
   return 0;
}

改進:運用邏輯表達式 

# include<stdio.h>

int main()
{
   int a,b;
   scanf("%d %d",&a,&b);
   
   int ret=0;
   int min=0;
   
   for(int i=1; i<=a&&i<=b; i++){
       if(a%i==0&&b%i==0){
               ret = i;
       }
   }
   
   printf("%d和%d的最大公約數爲%d\n",a,b,ret);
   
   return 0;
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章