求最大公因子
阿新 • • 發佈:2018-04-07
整除 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):"); 9scanf("%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) 34continue; 35 printf("The common factor is %d.\n",k); 36 } 37 return 0; 38 }
求最大公因子