歐幾里得原理求公約數的理解

2021-06-18 10:35:53 字數 337 閱讀 9650

以前求最大公約只是套用,今天仔細一想總算想明白了

為什麼轉輾相除經過那麼幾個過程就能得出求出最大公約數

首先應該知道兩個數就最大公約數時,如果大的那個數是小的那個數的倍數,則小的那個數就是兩個數的最大公約數

比如說35和25這組數

先用35/25=1(餘數10)

再用25/10=2(餘數5)

再用10/5=2    (餘數為0)

25是10的2倍餘5,也就是說由兩個10再加上5得到,而10是餘數5的倍數,這樣25和10都能由餘數5得到,。也就是說25和10的最大公約數是5,然後35又是由25和餘數10得到,即5是35的約數,因此5就是35和25的最大公約數

歐幾里得演算法(輾轉相除法)求最大公約數,原理及例項

假如需要求 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 時,取當...

求最大公約數

最新用了三種演算法實現了求最大公約數的演算法,用的c 寫的,最大公約數也是我們生活中常見的問題 1 窮舉法 主要 如下 if a b for i 1 i a i 演算法分析 窮舉法先將a,b兩值比較大小並且互換,再進行與各種數的整除,如果這個數能同時被a,b整除,那麼這個數就為最大公約數,這種演算法...

求最大公約數

暴力列舉法很簡單,從較小整數的一班開始,試圖找到乙個合適的整數i,檢查這個整數i是否被a和b同時整除 暴力列舉法求最大公約數 param a param b return public static int getgreatestcommondivisor v1 int a,int b for in...