最大公約數(Greatest Common Divisor, GCD),是指2個或N個整數共有約數中最大的一個。a,b的最大公約數記為(a, b)。相對應的是最小公倍數,記為[a, b]。
在求最大公約數的幾種方法中,歐幾里得算法(輾轉相除法)最為出名:
計算(a, b), 若b是0,則最大公約數為a;否則。將a除以b得到余數r,a和b的最大公約數就是b和r的最大公約數,即:(a, b) = (b, r)
public static int gcd(int a ,int b){
if(b == 0){
return a;
}else{
return gcd(b, a%b);
}
}
相應的最小公倍數求法:
public static int lcm(int a ,int b){
return a*b/gcd(b, a%b);
}