1. 程式人生 > >數論之歐幾裏德算法(一)

數論之歐幾裏德算法(一)

add ext 數論 data -m line tracking end nes

簡單介紹:
歐幾裏德算法。又稱輾轉相除法,是求解最大公約數的算法。

定理:
歐幾裏德算法的理論支撐為GCD遞歸定理。以下介紹這個定理。
GCD遞歸定理:
對隨意非負整數a和隨意正整數b。gcd(a , b) = gcd(b , a%b)

代碼:
由上述定理。我們能夠直接得出gcd函數的代碼:

int gcd(int a,int b){
    return b==0?a:gcd(b,a%b);
}

擴展:
依據a,b的最大公約數,我們能夠求得a,b的最小公倍數。


lcm函數:

int lcm(int a,int b){
    return a/gcd(a,b)*b
; }
‘).text(i)); }; $numbering.fadeIn(1700); }); });

數論之歐幾裏德算法(一)