用java写一个应用程序,计算两个非0正整数的最大公约数和最小公倍数,要求两个非0正整数从键盘输入
时间: 2024-09-17 14:07:22 浏览: 39
在Java中,你可以使用欧几里得算法(Euclidean Algorithm)来计算两个非零正整数的最大公约数(Greatest Common Divisor, GCD),然后根据最大公约数和其中一个数来计算它们的最小公倍数(Least Common Multiple, LCM)。以下是一个简单的示例程序:
```java
import java.util.Scanner;
public class GCDandLCM {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个非零正整数:");
int num1 = input.nextInt();
System.out.println("请输入第二个非零正整数:");
int num2 = input.nextInt();
while (num1 != 0 && num2 != 0) {
// 使用欧几里得算法计算最大公约数
int gcd = findGCD(num1, num2);
num1 = num2;
num2 = gcd;
}
System.out.println("这两个数的最大公约数是: " + num1);
// 根据最大公约数和其中一个数计算最小公倍数
int lcm = num1 * num2 / gcd;
System.out.println("这两个数的最小公倍数是: " + lcm);
}
// 欧几里得算法计算最大公约数
private static int findGCD(int a, int b) {
if (b == 0) {
return a;
} else {
return findGCD(b, a % b);
}
}
}
```
用户将被提示输入两个非零正整数,程序会计算并输出它们的最大公约数和最小公倍数。
阅读全文