1. 程式人生 > >求最大公因子

求最大公因子

整除 class spa com 依次 最大 pre col OS

問題:

  (窮舉法)求兩個數的最大公因子,對於輸入的a、b的值,首先確定較小者min,即當a<b時,min=a;當a>b時min=b,然後依次測試min-1,min-2,min-3,....,1,而最先能同時被a,b整除的那個數,就是a和b的最大公因子。一旦找到最大公因子,無需繼續測試下去。

 1 /*求a,b的最大公因子*/ 
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int a,b,min,k;
 6     do
 7     {
 8         printf("Enter a,b(>0):");
 9
scanf("%d,%d",&a,&b); 10 }while(!(a>0&&b>0)); 11 min=(a<b)?a:b; 12 for(k=min;k>=1;k--) 13 if(a%k==0&&b%k==0) 14 break; 15 printf("The largest common factor is %d.",k); 16 return 0; 17 } 18 19 20 /*對a,b的兩個正整數,輸出其所有能夠a與b的公因子
*/ 21 #include<stdio.h> 22 int main() 23 { 24 int a,b,min,k; 25 do 26 { 27 printf("Enter a,b(>0)"); 28 scanf("%d,%d",&a,&b); 29 }while(!(a>0&&b>0)); 30 min=(a<b)?a:b; 31 for(k=min;k>=1;k--) 32 { 33 if(a%k!=0||b%k!=0) 34
continue; 35 printf("The common factor is %d.\n",k); 36 } 37 return 0; 38 }




求最大公因子