當前位置:編程學習大全網 - 編程軟體 - C語言編程:輸入兩個正整數m和n,求它們的最大公約數。

C語言編程:輸入兩個正整數m和n,求它們的最大公約數。

代碼及註釋如下:

#include <stdio.h>

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 answer ; //定義最後結果

scanf ( "%d%d" , &a, &b) ; //取a,b的值

answer = GCD (a, b) ; //把結果賦給answer

printf ( "%d與%d的最大公約數為%d\n" , a , b , answer ) ; //輸出結果

}

擴展資料:

輾轉相除法求最大公約數的原理:

因為對任意同時整除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)。

因而,可以由此,得到兩個數的最大公約數。

  • 上一篇:銅帶機五件套怎麽換
  • 下一篇:凱編程
  • copyright 2024編程學習大全網