1. 程式人生 > >三種方法求最大公約數(C語言版)

三種方法求最大公約數(C語言版)

問題描述:用三種方法求兩個的整數的最大公約數。

演算法分析:

1.相減法:輸入兩整數a和b,(1)如果a>b,a=a-b;(2)如果a<b,b=b-a;(3)如果a=b,a或b就為這兩個整數的最大公約數

 (4)如果a!=b,則再執行(1)或(2)

程式實現如下圖:


2.窮舉法:輸入兩個整數a和b,(1)定義c;(2)如果a>b,則c=b;(3)如果a<b,則c=a;

     (4)如果a%c||b%c!=0,則執行c--;(5)如果a%c&&b%c==0,則c為最大公約數。

程式實現如下圖:


3.輾轉相除法:輸入兩個整數a和b,(1)如果a%b=c,c為0,則b為兩數的最大公約數;

     (2)如果c!=0,則令a=b,b=c,執行(1);

程式實現如下圖:


並且如上圖所示,可以利用兩數之積/兩數的最大公約數=其最小公倍數的關係,順帶求出兩數的最小公倍數。

另外,附上程式主函式的程式碼,如下圖:


以上就為用三種方法求兩個整數最大公約數的全過程。