java输入两个数m和n,编程求m和n的最大公约数和最小公倍数。
时间: 2024-09-12 22:11:20 浏览: 47
在Java中,你可以使用欧几里得算法(也称为辗转相除法)来计算两个数m和n的最大公约数(GCD),然后利用公式 GCD(m, n) * lcm(m, n) = |m * n| 来找出它们的最小公倍数(lcm)。下面是具体的步骤:
1. **求最大公约数(GCD)**:
```java
public static int gcd(int m, int n) {
if (n == 0) {
return m;
}
return gcd(n, m % n);
}
```
在这个递归函数中,每次都将较大的数替换为其余数,直到余数为0,此时较小的数就是两者的GCD。
2. **求最小公倍数(lcm)**:
```java
public static int lcm(int m, int n) {
return (m * n) / gcd(m, n);
}
```
这里直接将乘积除以GCD即可得到最小公倍数。
如果你需要完整的程序示例,可以这样做:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入两个整数m和n:");
int m = scanner.nextInt();
int n = scanner.nextInt();
int gcdResult = gcd(m, n);
int lcmResult = lcm(m, n);
System.out.printf("最大公约数(GCD): %d\n", gcdResult);
System.out.printf("最小公倍数(LCM): %d\n", lcmResult);
}
// ... (上述gcd和lcm方法)
}
```
记得运行此程序前导入`java.util.Scanner`以获取用户输入。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)