歐幾里德算法又稱輾轉相除法,用於計算兩個正整數a,b的最大公約數。
其計算原理依賴於下面的定理:
兩個整數的最大公約數等於其中較小的那個數和兩數相除余數的最大公約數。最大公約數(greatest common divisor)縮寫為gcd。gcd(a,b) = gcd(b,a mod b) (不妨設a>b 且r=a mod b ,r不為0),以此輾轉相除得到最終結果
參考資料(https://www.cnblogs.com/Dragon5/p/6401596.html)
利用偽代碼實現歐幾里德算法
假如需要求 1997 和 615 兩個正整數的最大公約數,用歐幾里德算法,是這樣進行的:
1997 / 615 = 3 (余 152)
615 / 152 = 4(余7)
152 / 7 = 21(余5)
7 / 5 = 1 (余2)
5 / 2 = 2 (余1)
2 / 1 = 2 (余0)
至此,最大公約數為1
以除數和余數反復做除法運算,當余數為 0 時,取當前算式除數為最大公約數,所以就得出了 1997 和 615 的最大公約數 1。