用java输入任意两个正整数求最大公约数和最小公倍数
时间: 2024-09-17 08:02:39 浏览: 55
在Java中,可以使用欧几里得算法(Euclidean algorithm)来计算两个正整数的最大公约数(Greatest Common Divisor, GCD),然后利用公式 `lcm(a, b) = |a * b| / gcd(a, b)` 来求最小公倍数(Least Common Multiple, LCM)。下面是一个简单的示例:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个正整数:");
int num1 = scanner.nextInt();
System.out.println("请输入第二个正整数:");
int num2 = scanner.nextInt();
// 计算最大公约数 (GCD)
int gcd = gcd(num1, num2);
// 计算最小公倍数 (LCM)
int lcm = (num1 * num2) / gcd; // 注意这里不需要取绝对值,因为两数都是正数
System.out.printf("最大公约数 (GCD): %d\n", gcd);
System.out.printf("最小公倍数 (LCM): %d\n", lcm);
}
// 欧几里得算法求最大公约数
private static int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
}
```
当你运行这个程序时,它会提示用户输入两个正整数,然后计算并输出它们的最大公约数和最小公倍数。
阅读全文