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

2021-10-13 15:12:55 字數 1713 閱讀 7503

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.執行最大公約數的常用演算法,並新增異常處理模組 如輸入非法等 在基礎程式的基礎上,可以考慮手動輸入所有數字或者利用隨機數產生數字,分別加入異常處理模組。注 隨機數的產生方法 srand 的作用是提供乙個種子。然後呼叫rand 其格式為int rand void 它會根據提供給srand 的種子值...

最大公約數

最大公因數 greatest common divisor 也稱最大公約數 最大公因子,指兩個或多個整數共有約數中最大的乙個。a,b的最大公約數記為 a,b 同樣的,a,b,c的最大公約數記為 a,b,c 多個整數的最大公約數也有同樣的記號。求最大公約數有多種方法,常見的有質因數分解法 短除法 輾轉...

最大公約數

求兩數的最大公約數 簡單嗎?簡單!用多種方法求,可以嗎?emmmmm.應該可以吧?相信絕大多數人都知道求最大公約數的如下 所示的這種方法 include includeint commondivisor int x,int y min return min int main 先判斷兩個數的大小,將較...