用java求最小公倍数,请给出几种方法的具体代码
时间: 2023-05-11 20:04:14 浏览: 125
以下是几种用 Java 求最小公倍数的方法及其代码:
方法一:暴力枚举法
public static int getLCM(int a, int b) {
int max = Math.max(a, b);
int min = Math.min(a, b);
for (int i = max; ; i += max) {
if (i % min == 0) {
return i;
}
}
}
方法二:辗转相除法
public static int getLCM(int a, int b) {
int gcd = getGCD(a, b);
return a * b / gcd;
}
public static int getGCD(int a, int b) {
if (b == 0) {
return a;
}
return getGCD(b, a % b);
}
方法三:质因数分解法
public static int getLCM(int a, int b) {
int lcm = 1;
int max = Math.max(a, b);
int min = Math.min(a, b);
for (int i = 2; i <= min; i++) {
if (isPrime(i)) {
int count1 = 0;
int count2 = 0;
while (a % i == 0) {
a /= i;
count1++;
}
while (b % i == 0) {
b /= i;
count2++;
}
lcm *= Math.pow(i, Math.max(count1, count2));
}
}
lcm *= a * b;
return lcm;
}
public static boolean isPrime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
希望这些代码能够帮助到您!
阅读全文