求最大公約數,最小公倍數演算法

2021-10-06 04:29:00 字數 614 閱讀 9658

一般常見的演算法有:求差判定法,歐幾里得演算法,stein演算法。

這邊重點介紹歐幾里得演算法,就是常說的輾轉相除法,是經典的求解最大公約數的演算法。

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

演算法的基本思想是:假設 a > b,則餘數 r = a % b,若餘數 r 為 0,則 b 即為所求的數;若餘數 r不為 0,則互換:置a <— b,b<— r,並返回上一步,直到餘數是0,則除數就是最大的公約數。

int

maxcomdiv

(int num1,

int num2)

int r = num1 % num2;

while

(r)return num2;

}

最小公倍數的求解:

演算法的基本思想是:最小公倍數 * 最大公約數 = 兩個數的乘積。

int

mincommul

(int num1,

int num2)

總結:後續會把剩餘的兩種求最大公約數的演算法補齊

求最大公約數,最小公倍數

歐幾里德遞迴演算法,大數對小數取餘直到小數為0,大數為最大公約數 param m param n return static int maxcommondivisor euclid recursion int m,int n return m 劉徽兩數相減直到兩數相等,等數為最大公約數 param ...

最大公約數 最小公倍數

求最大公約數最直接的辦法是從兩數中較小數與2之間的所有整數中乙個乙個的找。但這個方法有點浪費。有兩種有名的方法 1.輾轉相除法2.更相減損之術這兩種方法比較有名,而且現在人教版的高中數學中已經介紹了這兩種方法。下面這個是第2個,因為它只需要加減法就可以,效率高。int maxfactor unsig...

最小公倍數 最大公約數

求最小公倍數演算法 最小公倍數 兩整數的乘積 最大公約數 求最大公約數演算法 1 輾轉相除法 有兩整數a和 b a b得餘數c 若c 0,則 b即為兩數的最大公約數 若c 0,則 a b,b c,再回去執行 例如求27和 15的最大公約數過程為 27 15 餘12 15 12餘3 12 3餘0 因此...