/*
* 求解最大公约数(递归实现)
*/
public static int gcd(int a, int b) {
if (a < 0 || b < 0)
return -1;
if (b == 0)
return a;
return gcd(b, a % b);
}
/*
* 求解最大公约数(非递归实现)
*/
public static int gcd1(int a, int b) {
int temp;
while (a % b != 0) {
temp = a % b;
a = b;
b = temp;
}
return b;
}
/*
* 求解最小公倍数 定理:对于两个正整数 a和 b,有gcd(a, b) * lcm(a, b) == a * b
*/
public static int lcm(int a, int b) {
if (a < 0 || b < 0)
return -1;
return a * b / gcd(a, b);
}
欧几里得算法求最大公约数和最小公倍数
最新推荐文章于 2023-12-18 20:17:48 发布