Java求最小公倍数
时间: 2023-12-31 15:25:01 浏览: 166
以下是三种Java求最小公倍数的方法:
1. 最简单粗暴的方式是一个个试,从1开始逐个判断是否同时是x和y的倍数,直到找到最小公倍数为止。
```java
public int lcm(int x, int y) {
for (int i = 1; i < x * y; i++) {
if (i % x == 0 && i % y == 0)
return i;
}
return x * y;
}
```
2. 如果已经求出了最大公约数gcd,那么最小公倍数可以通过x和y的乘积除以gcd得到。
```java
public int lcm2(int x, int y) {
return x * y / gcd1(x, y);
}
```
3. 如果x和y比较大的话,可能会导致溢出,可以使用下面的写法,先求出最大公约数gcd,然后通过(x / gcd) * (y / gcd) * gcd计算最小公倍数。
```java
public int lcm3(int x, int y) {
int gcd = gcd1(x, y);
return (x / gcd) * (y / gcd) * gcd;
}
```
相关问题
java求最小公倍数
要在Java中求最小公倍数,可以使用最大公约数来计算。可以使用辗转相除法来求最大公约数,然后使用公式最小公倍数=两整数的乘积/最大公约数来求解最小公倍数。以下是一个示例代码:
```java
public int lcm(int x, int y) {
int gcd = gcd(x, y);
return x * y / gcd;
}
public int gcd(int x, int y) {
while (y != 0) {
int temp = x % y;
x = y;
y = temp; }
return x;
}
```
JAVA求最小公倍数
求最小公倍数(Least Common Multiple,LCM)通常需要两个数的最小公倍数。在JAVA中,可以通过计算两个数的最大公约数(Greatest Common Divisor,GCD),然后利用两数的乘积除以最大公约数来获得最小公倍数。下面是一个简单的实现方法:
```java
public class LCM {
// 计算两个数的最大公约数
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(a, b));
}
public static void main(String[] args) {
int num1 = 15;
int num2 = 20;
System.out.println("最小公倍数是: " + lcm(num1, num2));
}
}
```
在这个例子中,`gcd` 方法使用了辗转相除法来计算最大公约数。然后,`lcm` 方法通过两数乘积除以它们的最大公约数来计算最小公倍数。
阅读全文