Java求最小公倍数和最大公约数
时间: 2023-12-31 14:55:27 浏览: 67
好的,我可以回答这个问题。Java中求最小公倍数和最大公约数可以通过以下代码实现:
```
// 求最大公约数
public static int gcd(int a, int b) {
while(b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
// 求最小公倍数
public static int lcm(int a, int b) {
return a * b / gcd(a, b);
}
```
在这些代码中,gcd()方法用于计算两个整数的最大公约数,而lcm()方法用于计算两个整数的最小公倍数。
相关问题
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求最小公倍数
以下是三种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;
}
```
阅读全文