java输入两个正整数m和n,求其最大公约数和最小公倍数。
时间: 2023-06-05 12:48:11 浏览: 118
可以使用辗转相除法求解最大公约数,即不断用较小数去除较大数,直到余数为,此时较大数即为最大公约数。最小公倍数可以通过最大公约数和两数之积的关系求得,即最小公倍数等于两数之积除以最大公约数。
代码示例:
```
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语句
可以使用辗转相除法求最大公约数,最小公倍数可以通过公式 lcm = m * n / gcd 计算得到。以下是使用Java语言实现的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入两个正整数m和n:");
int m = sc.nextInt();
int n = sc.nextInt();
int gcd = 0;
int lcm = 0;
for (int i = Math.min(m, n); i >= 1; i--) {
if (m % i == 0 && n % i == 0) {
gcd = i;
break;
}
}
lcm = m * n / gcd;
System.out.println("最大公约数为:" + gcd);
System.out.println("最小公倍数为:" + lcm);
}
}
```
在循环中,我们从较小的数开始往下枚举,如果同时满足m和n都能被i整除,则i为最大公约数,直接使用break语句退出循环。最小公倍数可以通过公式lcm = m * n / gcd计算得到。
输入两个正整数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` 语句来跳出循环,提高效率。
阅读全文