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

2021-05-28 06:23:08 字數 974 閱讀 9780

兩個整數的最大公約數是能夠同時整除它們的最大的正整數。輾轉相減法基於如下原理:兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數。例如,252和105的最大公約數是21(252 = 21 × 12;105 = 21 × 5);因為252 − 105 = 147,所以147和105的最大公約數也是21。在這個過程中,較大的數縮小了,所以繼續進行同樣的計算可以不斷縮小這兩個數直至其中乙個變成零。這時,所剩下的還沒有變成零的數就是兩數的最大公約數。由輾轉相除法也可以推出,兩數的最大公約數可以用兩數的整數倍相加來表示,如21 = 5 × 105 + (−2) × 252。這個重要的等式叫做貝祖等式。這種方法也叫輾轉相除法。參考:

以下是求最大公約數的方法。

public class test 

private static int getcommondivisor1(int a, int b)

return b;

}private static int getcommondivisor2(int a, int b)

}最小公倍數:

最小公倍數(least common multiple,縮寫l.c.m.),如果有乙個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數,對於兩個整數來說,指該兩數共有倍數中最小的乙個。計算最小公倍數時,通常會借助最大公約數來輔助計算。其中,4是最小的公倍數,叫做他們的最小公倍數。 例如,十天幹和十二地支混合稱呼一陰曆年,干支迴圈回歸同一名稱的所需時間,就是 12 和 10 的最小公倍數,即是 60 ──乙個「甲子」。對分數進行加減運算時,要求兩數的分母相同才能計算,故需要通分;假如令兩個分數的分母通分成最小公倍數,計算量便最低。

a,b為兩個整數,x為a,b的最大公約數 a=a * x, b=b * x,a,b互質,所以a,b 的最小公倍數是c = a * b * x=a * b / x;

以下是求最小公倍數的方法:

private static int getlowestcommonmultiple(int a, int b)

最大公約數 最小公倍數

求最大公約數最直接的辦法是從兩數中較小數與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 因此...

最大公約數,最小公倍數

兩個數最大公約數 輾轉相除法 在數學中,輾轉相除法,又稱歐幾里得演算法,是求最大公約數的演算法。兩個整數的最大公約數是能夠同時整除它們的最大的正整數。輾轉相除法基於如下原理 兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數。例如 用 a,b 來表示a和b的最大公約數。已知a,b,c為正整數...