java输入两个正整数m和n,求其最大公约数和最小公倍数。
时间: 2023-03-29 14:01:45 浏览: 119
您好,我可以回答您的问题。对于输入的两个正整数m和n,可以使用辗转相除法求得它们的最大公约数,同时可以通过公式计算得到它们的最小公倍数。具体计算方法可以参考以下代码:
#include <stdio.h>
int main()
{
int m, n, a, b, temp, gcd, lcm;
printf("请输入两个正整数m和n:\n");
scanf("%d%d", &m, &n);
a = m;
b = n;
while (b != )
{
temp = a % b;
a = b;
b = temp;
}
gcd = a;
lcm = m * n / gcd;
printf("最大公约数为:%d\n", gcd);
printf("最小公倍数为:%d\n", lcm);
return ;
}
相关问题
输入两个正整数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` 语句来跳出循环,提高效率。
阅读全文