java计算两个非零正整数的最大公倍数和最小公倍数,要求两个非零正整数从键盘输入
时间: 2024-10-11 07:11:11 浏览: 26
在Java中,计算两个非零正整数的最大公约数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM),通常会先通过欧几里得算法求出GCD,然后利用公式 LCM(a, b) = |a * b| / GCD(a, b) 来计算LCM。
以下是步骤和代码示例:
1. 首先创建一个函数来计算GCD:
```java
public static int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
```
2. 接着,创建一个函数来计算LCM:
```java
public static int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
```
3. 获取用户输入并检查是否是非零正整数:
```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();
while (num1 <= 0) {
System.out.println("输入错误,请输入一个非零正整数:");
num1 = scanner.nextInt();
}
System.out.println("请输入第二个非零正整数:");
int num2 = scanner.nextInt();
while (num2 <= 0) {
System.out.println("输入错误,请输入一个非零正整数:");
num2 = scanner.nextInt();
}
// 计算并打印结果
int resultGCD = gcd(num1, num2);
int resultLCM = lcm(num1, num2);
System.out.printf("最大公约数(GCD): %d\n", resultGCD);
System.out.printf("最小公倍数(LCM): %d\n", resultLCM);
}
}
```
阅读全文