概念:
最大公约数:最大公约数(Greatest Common Divisor, GCD)是指两个或多个整数共有约数中最大的一个。如:10和15,其最大公约数为5;
最小公倍数:最小公倍数(Least Common Multiple, LCM)是指两个或多个整数的最小公倍数,即能被这些整数整除的最小正整数。
最小公倍数与最大公约数(Greatest Common Divisor, GCD)紧密相关,实际上,两个数的最小公倍数可以通过它们的乘积除以它们的最大公约数来计算。
递归:
public class GCDLCM {
// 计算两个数的最大公约数(GCD)
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 计算两个数的最小公倍数(LCM)
public static int lcm(int a, int b) {
// 利用公式:LCM(a, b) = (a * b) / GCD(a, b)
return (a * b) / gcd(a, b);
}
public static void main(String[] args) {
int num1 = 12; // 第一个数
int num2 = 15; // 第二个数
//计算最大公约数
int i=gcd(num1,num2);
// 计算并打印最小公倍数
int result = lcm(num1, num2);
}
}
碾转相除法:
public class GCD {
public static int gcd(int a, int b) {
while (b != 0) {
int remainder = a % b;
a = b;
b = remainder;
}
return a;
}
public static void main(String[] args) {
int a = 12;
int b = 18;
int gcd = gcd(a, b);
System.out.println("最大公约数:" + gcd); // 输出:6
}
}