java输入两个正整数m和n,求其最大公约数和最小公倍数。
时间: 2023-06-05 22:48:11 浏览: 73
可以使用辗转相除法求解最大公约数,即不断用较小数去除较大数,直到余数为,此时较大数即为最大公约数。最小公倍数可以通过最大公约数和两数之积的关系求得,即最小公倍数等于两数之积除以最大公约数。
代码示例:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int m = scanner.nextInt();
int n = scanner.nextInt();
int gcd = getGcd(m, n);
int lcm = m * n / gcd;
System.out.println("最大公约数为:" + gcd);
System.out.println("最小公倍数为:" + lcm);
}
// 辗转相除法求最大公约数
public static int getGcd(int a, int b) {
if (b == ) {
return a;
}
return getGcd(b, a % b);
}
}
```
相关问题
Java输入两个正整数m和n,求其最大公约数和最小公倍数
输入两个正整数m和n,可以使用Java语言来求它们的最大公约数和最小公倍数。根据引用,两个整数的最大公约数等于其中较小的那个数和两数的相除余数的最大公约数。而最小公倍数等于两个数的乘积除以它们的最大公约数,根据引用。因此,可以使用一个方法来分别求出最大公约数和最小公倍数。
具体实现方法如下:
```
import java.util.Scanner;
public class GcdLcm {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入第一个正整数:");
int m = scan.nextInt();
System.out.print("请输入第二个正整数:");
int n = scan.nextInt();
int gcd = getGcd(m, n);
int lcm = m * n / gcd;
System.out.println(m + "和" + n + "的最大公约数为:" + gcd);
System.out.println(m + "和" + n + "的最小公倍数为:" + lcm);
}
// 求最大公约数
public static int getGcd(int a, int b) {
if (b == 0) {
return a;
} else {
return getGcd(b, a % b);
}
}
}
```
在这个程序中,首先使用Scanner类获取用户输入的两个正整数m和n。然后,调用getGcd方法求出它们的最大公约数,再根据引用求出最小公倍数。最后,输出结果。
Java输入两个正整数 m 和 n ,求其最大公约数和最小公倍数
这段代码实现了Java输入两个正整数 m 和 n ,求其最大公约数和最小公倍数的功能。其中,最大公约数的求解使用了for循环,从1到较小的数中找到能同时被m和n整除的最大的数,即为它们的最大公约数;最小公倍数的求解使用了for循环,从较大的数开始,找到能同时被m和n整除的最小的数,即为它们的最小公倍数。这个算法的时间复杂度为O(n),在数据较大时可能会比较耗时。另外,这段代码中有一些语法错误,需要进行修正。