java输入两个正整数m和n,求其最大公约数和最小公倍数。
时间: 2023-06-05 12:48:11 浏览: 114
可以使用辗转相除法求解最大公约数,即不断用较小数去除较大数,直到余数为,此时较大数即为最大公约数。最小公倍数可以通过最大公约数和两数之积的关系求得,即最小公倍数等于两数之积除以最大公约数。
代码示例:
```
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);
}
}
```
相关问题
输入两个正整数m和n求其最大公约数和最小公倍数使用java语言的break语句
好的,下面是使用Java语言的break语句来求两个正整数m和n的最大公约数和最小公倍数的程序:
```java
import java.util.Scanner;
public class GcdAndLcm {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入两个正整数m和n:");
int m = input.nextInt();
int n = input.nextInt();
int gcd = 1; // 最大公约数
int lcm = m * n; // 最小公倍数
for (int i = 1; i <= m && i <= n; i++) {
if (m % i == 0 && n % i == 0) {
gcd = i;
}
if (i * m % n == 0) {
lcm = i * m;
break; // 找到最小公倍数就退出循环
}
}
System.out.println("最大公约数是:" + gcd);
System.out.println("最小公倍数是:" + lcm);
}
}
```
以上程序会先让用户输入两个正整数m和n,然后使用for循环从1到m和n的较小值中依次判断每个数是否是m和n的公约数,如果是则把它赋值给gcd,同时用i乘以m判断是否能整除n,如果可以则把i乘以m赋值给lcm,然后使用break语句退出循环,因为已经找到最小公倍数了。最后输出最大公约数和最小公倍数即可。
输入两个正整数m和n求其最大公约数和最小公倍数使用java语言的break语句带注释
当用户输入两个正整数m和n,求最大公约数和最小公倍数
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 提示用户输入两个正整数
System.out.println("请输入两个正整数:");
int m = scanner.nextInt();
int n = scanner.nextInt();
int max = Math.max(m, n);
int min = Math.min(m, n);
int gcd = 0; // 最大公约数
int lcm = 0; // 最小公倍数
// 求最大公约数
for (int i = min; i >= 1; i--) {
if (max % i == 0 && min % i == 0) {
gcd = i;
break; // 找到最大公约数,跳出循环
}
}
// 求最小公倍数
for (int i = max; i <= max * min; i++) {
if (i % max == 0 && i % min == 0) {
lcm = i;
break; // 找到最小公倍数,跳出循环
}
}
// 输出结果
System.out.println(m + "和" + n + "的最大公约数是:" + gcd);
System.out.println(m + "和" + n + "的最小公倍数是:" + lcm);
}
}
```
注释已经加上了,代码中使用了 `break` 语句来跳出循环,提高效率。
阅读全文