用java编写程序输入两个正整数a和b(0<a,b<1000000),求出其最大公约数和最小公倍数并输出。 【输入文件】从标准输入读取一行,是两个整数a和b,以空格分隔。 【输出文件】向标准输出打印以空格分隔的两个整数,分别是a、b的最大公约数和最小公倍数。在输出末尾要有一个回车符。 【输入样例】12 18 【输出样例】6 36 【样例说明】12和18的最大公约数是6,最小公倍数是36.
时间: 2024-03-14 17:46:59 浏览: 104
好的,这是一个求最大公约数和最小公倍数的问题,我来编写一个Java程序来解决它:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int gcd = gcd(a, b);
int lcm = lcm(a, b);
System.out.println(gcd + " " + lcm);
}
public static int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
public static int lcm(int a, int b) {
return a / gcd(a, b) * b;
}
}
```
这个程序中,我们首先使用Scanner从控制台输入两个整数a和b,然后调用gcd函数和lcm函数计算a和b的最大公约数和最小公倍数,最后输出计算结果。其中,gcd函数使用辗转相除法计算最大公约数,lcm函数使用最大公约数的性质计算最小公倍数。
运行这个程序,输入12和18,得到的输出是:
```
6 36
```
说明12和18的最大公约数是6,最小公倍数是36。
阅读全文