欧几里得算法求最大公约数-《Algorithms Fourth Edition》第1章

时间:2023-03-09 10:01:29
欧几里得算法求最大公约数-《Algorithms Fourth Edition》第1章

最大公约数(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);
}