C語言 兩種方法求最大公約數

2021-10-08 14:19:28 字數 1082 閱讀 1906

關於怎麼求最大公約數,我總結了兩種方法!

一種是取餘求最大公約數

另一種是相減求最大公約數

下面第一種先介紹一下取餘法,**如下:

這個方法的思路就是對兩個數字進行迴圈求餘,只要當餘數不為0時就一直進行迴圈,餘數為0時推出迴圈,輸出除數的值,此時除數的值就是最大公約數,下面我會用乙個例子來說明一下;

比如有兩個數字24和34

m % n = yu

24 % 34 = 24

34 % 24 = 10

24 % 10 = 4

10 % 4 = 2

4 % 2 = 0

注意:寫**時要將yu放在「=」左邊,因為「=」左邊只能為左值。

注意:我這個**是在linux環境下寫的,要在c-free中執行會有亂碼,只要將中文換掉即可。

#include

intmain()

while

(m%n!=0)

printf

("最大公約數是:%d\n"

,n);

return0;

}

另一種方法為相減法,**如下:

這個方法的思路就是對兩個數字進行迴圈相減,只要兩個數相減不為0時則一直迴圈,相減為0時則推出迴圈,輸出被減數的值,此時被減數或者減數都為最大公約數,例子如下:

還是24和34

m - n = res

34 - 24 = 10

24 - 10 = 14

14 - 10 = 4

10 - 4 = 6

6 - 4 = 2

4 - 2 = 2

2 - 2 =0

#include

intmain()

else

printf

("最大公約數為:%d\n"

,big);}

return0;

}

求最大公約數兩種方法

說是兩種方法,其實他們本質是一樣的,只是一種用遞迴,另一種是迴圈的改寫罷了。遞迴演算法 最大公約數 param num1 第乙個數 param num2 第二個數 return 返回最大公約數 public static long gcb long num1,long num2 else 迴圈演算法...

最大公約數問題的兩種方法

最大公因數,又稱最大公約數。是指 n 2 個自然數 a1,a2,an 的最大公因數。通常有兩種表示方式 它們的所有公因數中最大的那乙個 如果自然數 m 是這 n 個自然數的公因數,且這 n 個數的任意公因數都是 m 的因數,就稱 m 是這 n 個數的最大用因數。通常國內的記述方式為 a1,a2,an...

求最大公約數方法

從兩個數a和b中的較小數開始逐個減小1,尋找能整除a和b的整數。第乙個找到的整數即整數a和b的最大公約數。int getpublicmaxnum int a,int b 先用小的乙個數除大的乙個數,得第乙個餘數 再用第乙個餘數除小的乙個數,得第二個餘數 又用第二個餘數除第乙個餘數,得第三個餘數 這樣...