歐幾里得算法(又稱輾轉相除法)


歐幾里得算法(又稱輾轉相除法)用於計算兩個數的最大公約數

 

因式分解

在學習歐幾里得算法之前,我們先來看一看數字1112和695的最大公約數是多少吧。

 

通常的做法是先對兩個數字因式分解,找出共同的素數,然后求出最大公約數(GCD)。這樣就能求出1112和695的最大公約數為139。然而兩個數字越大,因式分解就越難。此時,使用歐幾里得算法就能更高效地求解最大公約數。

 

處理流程

首先用較小的數字去除較大的數字,求出余數。也就是對兩個數字進行mod運算。我們在第5章也講過mod運算即取余運算,A mod B就是算出A除以B后的余數C。

除完后的余數為417。

接下來再用除數695和余數417進行mod運算。結果為278。

繼續重復同樣的操作,對417和278進行mod運算,結果為139。

對278和139進行mod運算,結果為0。也就是說,278可以被139整除。

余數為0時,最后一次運算中的除數139就是1112和695的最大公約數。

 

算法效率

使用歐幾里得算法,只需重復做除法便能求得最大公約數。這個算法最大的優勢就在於即使兩個數字再大,只要按照步驟進行操作就能高效地求得兩者的最大公約數。

 

參考: 我的第一本算法書 7-1 歐幾里得算法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM