最大公約數演算法

2022-01-16 16:47:36 字數 1714 閱讀 1649

1、查詢約數法. 先分別找出每個數的所有約數, 再從兩個數的約數中找出公有的約數, 其中最大的乙個就是 最大公約數. 例如,求 12 和 30 的最大公約數. 12 的約數有:1、2、3、4、6、12; 30 的約數有:1、2、3、5、6、10、15、30. 12 和 30 的公約數有:1、2、3、6,其中 6 就是 12 和 30 的最大公約數. 2 更相減損術 《九章算術》是中國古代的數學專著,其中的「更相減損術」可以用來求 兩個數的最大公約數,即「可半者半之,不可半者,副置分母、子之數, 以少減多,更相減損,求其等也。以等數約之。」 翻譯成現代語言如下: 第一步:任意給定兩個正整數;判斷它們是否都是偶數。若是,則用 2 約簡;若不是則執行第二步。 第二步:以較大的數減較小的數,接著把所得的差與較小的數比較, 並以大數減小數。繼續這個操作,直到所得的減數和差相等為止。 則第一步中約掉的若干個

2 與第二步中等數的乘積就是所求的最大公 約數。 其中所說的「等數」,就是最大公約數。求「等數」的辦法是「更相 減損」法。

3、輾轉相除法. 當兩個數都較大時,採用輾轉相除法比較方便.其方法是: 以小數除大數,如果能整除,那麼小數就是所求的最大公約數.否則就用餘數來除剛才 的除數;再用這新除法的餘數去除剛才的餘數.依此類推,直到乙個除法能夠整除,這時作 為除數的數就是所求的最大公約數. 例如:求 4453 和 5767 的最大公約數時,可作如下除法. 5767÷4453=1 餘 1314 4453÷1314=3 餘 511 1314÷511=2 餘 292 511÷292=1 餘 219 292÷219=1 餘 73 219÷73=3 於是得知,5767 和 4453 的最大公約數是 73. 輾轉相除法適用比較廣,比短除法要好得多,它能保證求出任意兩個數的最大公約數.

4、求差判定法. 如果兩個數相差不大, 可以用大數減去小數, 所得的差與小數的最大公約數就是原來兩 個數的最大公約數.例如:求 78 和 60 的最大公約數.78-60=18,18 和 60 的最大公約 數是 6,所以 78 和 60 的最大公約數是 6. 如果兩個數相差較大,可以用大數減去小數的若干倍,一直減到差比小數小為止,差和小數 的最大公約數就是原來兩數的最大公約數.例如:求 92 和 16 的最大公約數.92-16=76, 76-16=60,60-16=44,44-16=28,28-16=12,12 和 16 的最大公約數是 4,所 以 92 和 16 的最大公約數就是 4.

5、分解因式法. 先分別把兩個數分解質因數, 再找出它們全部公有的質因數, 然後把這些公有質因數相 乘,得到的積就是這兩個數的最大公約數. 例如:求 125 和 300 的最大公約數.因為 125=5×5×5,300=2×2×3×5×5,所以 125 和 300 的最大公約數是 5×5=25.

6、短除法. 為了簡便, 將兩個數的分解過程用同乙個短除法來表示, 那麼最大公約數就是所有除數 的乘積. 例如:求 180 和 324 的最大公約數. 因為: 5 和 9 互質,所以 180 和 324 的最大公約數是 4×9=36. 7、除法法. 當兩個數中較小的數是質數時,可採用除法求解.即用較大的數除以較小的數,如果能 夠整除,則較小的數是這兩個數的最大公約數. 例如:求 19 和 152,13 和 273 的最大公約數.因為 152÷19=8,273÷13=21.(19 和 13 都是質數.)所以 19 和 152 的最大公約數是 19,13 和 273 的最大公約數是 13. 8、縮倍法. 如果兩個數沒有之間沒有倍數關係,可以把較小的數依次除以 2、3、4……直到求得的 商是較大數的約數為止,這時的商就是兩個數的最大公約數.例如:求 30 和 24 的最大公 約數.24÷4=6,6 是 30 的約數,所以 30 和 24 的最大公約數是 6.

最大公約數簡便演算法 最大公約數演算法

1 查詢約數法 先分別找出每個數的所有約數,再從兩個數的約數中找出公有的約數,其中最大的乙個就是 最大公約數 例如,求 12 和 30 的最大公約數 12 的約數有 1 2 3 4 6 12 30 的約數有 1 2 3 5 6 10 15 30 12 和 30 的公約數有 1 2 3 6,其中 6 ...

演算法 最大公約數

最大公約數是乙個很經典的數學問題,對於這個問題有四種通用的解法,質因數分解法,短除法,不過比較常用的還是輾轉相除法,演算法出自於歐幾裡的著作 幾何原本 還有乙個就是出自 九章算術 的更相減損法,一般實現的時候都是通過輾轉相除法實現,基本的邏輯是這樣的 假設把a和b的最大公約數表示成為f a,b 並且...

演算法 最大公約數

最大公約數是乙個很經典的數學問題,對於這個問題有四種通用的解法,質因數分解法,短除法,不過比較常用的還是輾轉相除法,演算法出自於歐幾裡的著作 幾何原本 還有乙個就是出自 九章算術 的更相減損法,一般實現的時候都是通過輾轉相除法實現,基本的邏輯是這樣的 假設把a和b的最大公約數表示成為f a,b 並且...