#include <stdio.h>
void t(int a,int b) {
if( a == 0 || b == 0) {
printf("Number can not be 0.\n");
return;
}
while( a > 0 && b > 0 ) {
if( a > b )
a = a % b;
else
b = b % a;
}
if( a == 0 )
printf("最大公因數為 %d\n",b);
else
printf("最大公因數為 %d\n",a);
}
int main(void) {
int a,b;
printf("請輸入a,b求最大公因數:");
scanf("%d %d",&a,&b);
t(a,b);
return 0;
}
文章標籤
全站熱搜

謝謝大大的分享
You are welcome ^^
如果ab有最大公因數 a%b a除以的餘數不就為0 最後不是因該print出0嗎??? 不懂耶!!請指教
來個另類解法︰ ///遞迴解法/// #include
using namespace std;
int GCD(int , int);
int main ()
{
int a , b ;
cin >> a >> b;
cout << GCD(a , b);
return 0;
}
int GCD(int a, int b)
{
if(!(a % b))return b;
if(a > b) return GCD(a % b , b);
if(!(b % a))return a;
return GCD(b % a , a);
}