數論之歐幾裏德算法(一)
簡單介紹:
歐幾裏德算法。又稱輾轉相除法,是求解最大公約數的算法。
定理:
歐幾裏德算法的理論支撐為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 ;
}
數論之歐幾裏德算法(一)