# include & ltstdio.h & gt
Int GCD(int a,int b)//定義壹個函數來計算最大公約數。
{?
return b==0?a:GCD(b,a % b);
//這裏用的是遞歸。如果b=0,則返回A作為最大公約數;否則B和a%b總是賦給函數,實現除法。
}
int main()
{
int a,b;//定義參數a、b
int回答;//定義最終結果
scanf ( "%d%d ",& amp壹,& ampb);//取A和b的值。
答案= GCD (a,b);//將結果賦給答案
printf(" %d % d和% d的最大公約數是%d\n ",a,b,答案);//輸出結果
}
擴展數據:
用除法求最大公約數的原理;
因為對任意壹個能被a和b同時整除的數u都有a=su和b=tu,所以也能被r整除,因為r = a-bq = su-qtu = (s-qt) u。
反過來,每壹個能被B和R整除的整數V都有B = SV,R = TV,它也能整除A,因為A = BQ+R = SVQ+TV = (SQ+T) V
所以A和B的每壹個公因數也是B和R的公因數,反之亦然。
這樣,由於A和B的所有公因式集合與B和R的公因式集合相同,所以A和B的最大公因式壹定等於B和R的最大公因式,證明了上面的等式。即(a,b)=(b,r)。
所以兩個數的最大公約數可以由此得出。