用c语言 第3关: 最大公约数和最小公倍数 任务描述 本关任务:输入两个正整数m和n,求其最大公约数和最小公倍数。 相关知识(略) 编程要求 根据提示,在右侧编辑器Begin-End处补充代码,输入两个正整数m和n,求其最大公约数和最小公倍数。 输入 从键盘上任意输入两个数。 输出 分两行输出,第一行输出:最大公约数是多少;第二行输出最小公倍数是多少。 测试说明 平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。 样例输入: 2 3 样例输出: 最大公约数是:1 最小公倍数是:6 开始你的任务吧,祝你成功! 关卡 上一关 下一关 代码
时间: 2023-12-03 09:44:03 浏览: 34
```c
#include <stdio.h>
int main() {
int m, n, gcd, lcm, temp;
printf("请输入两个正整数:\n");
scanf("%d%d", &m, &n);
// 求最大公约数
for (int i = 1; i <= m && i <= n; i++) {
if (m % i == 0 && n % i == 0) {
gcd = i;
}
}
// 求最小公倍数
temp = m > n ? m : n; // 找出较大的数
while (1) {
if (temp % m == 0 && temp % n == 0) {
lcm = temp;
break;
}
temp++;
}
printf("最大公约数是:%d\n", gcd);
printf("最小公倍数是:%d\n", lcm);
return 0;
}
```
相关问题
C语言本关任务:输入两个正整数m和n,求其最大公约数和最小公倍数。
本任务要求输入两个正整数m和n,然后求它们的最大公约数和最小公倍数。最大公约数是指能够同时整除m和n的最大正整数,而最小公倍数是指能够同时被m和n整除的最小正整数。在C语言中,可以使用辗转相除法或者更相减损法来求解最大公约数,然后通过最大公约数求解最小公倍数。具体实现可以参考上述提供的三个代码引用。
本关任务:输入两个正整数m和n,求其最大公约数和最小公倍数
以下是C语言实现输入两个正整数m和n,求其最大公约数和最小公倍数的代码:
```c
#include <stdio.h>
int main() {
int x, y, z, m, n;
printf("请输入两个正整数:");
scanf("%d%d", &x, &y);
m = x, n = y;
while (y != 0) {
z = x % y;
x = y;
y = z;
}
printf("最大公约数是%d\n最小公倍数是%d\n", x, m * n / x);
return 0;
}
```
输入两个正整数后,程序会先求它们的最大公约数,然后用这两个数的乘积除以最大公约数得到最小公倍数,最后输出结果。