2、编写java程序,计算2个非零正整数的最大公约数和最小公倍数,要求2个非零正整数从键盘输入。
时间: 2024-09-19 11:14:42 浏览: 37
在Java中,你可以通过欧几里得算法(Euclidean Algorithm)来计算两个非零正整数的最大公约数(GCD),然后使用最大公约数来找到它们的最小公倍数(LCM)。以下是简单的步骤:
1. **输入数值**:
使用`Scanner`类从用户那里获取两个正整数。
```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();
```
2. **计算最大公约数**:
实现一个递归函数来计算GCD,通常使用欧几里得原理。
```java
// 欧几里得算法
public static int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
```
3. **计算最小公倍数**:
最小公倍数可以用GCD来计算,公式是 `LCM(a, b) = |a * b| / GCD(a, b)`。
```java
// 计算最小公倍数
public static int lcm(int a, int b) {
return Math.abs(a * b) / gcd(a, b);
}
// 主函数中调用上述函数并打印结果
public static void main(String[] args) {
...
int resultGcd = gcd(num1, num2);
int resultLcm = lcm(num1, num2);
System.out.printf("最大公约数(GCD): %d\n", resultGcd);
System.out.printf("最小公倍数(LCM): %d\n", resultLcm);
scanner.close();
}
}
```
阅读全文