用C语言输入两个正整数m和n,求其最大公约数和最小公倍数。
时间: 2024-03-24 07:32:20 浏览: 65
输入两个正整数m和n,可以使用辗转相除法来求它们的最大公约数和最小公倍数。具体步骤如下:
1. 用较大的数除以较小的数,得到余数c。
2. 若c等于0,则较小的数即为最大公约数。
3. 若c不等于0,则将较小的数赋值给较大的数,将余数赋值给较小的数,再执行第1步。
4. 最小公倍数等于两数之积除以最大公约数。
下面是C语言代码实现:
```
#include <stdio.h>
// 求最大公约数
int gcd(int a, int b) {
int temp;
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
// 求最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int m, n;
printf("请输入两个正整数:");
scanf("%d %d", &m, &n);
printf("最大公约数为:%d\n", gcd(m, n));
printf("最小公倍数为:%d\n", lcm(m, n));
return 0;
}
```
相关问题
用C语言输入两个正整数m和n 求其最大公约数和最小公倍数
您好,以下是您所需的C语言代码:
#include <stdio.h>
int main() {
int m, n, i, gcd, lcm;
printf("请输入两个正整数m和n:\n");
scanf("%d %d", &m, &n);
for (i = 1; i <= m && i <= n; ++i) {
// 判断i是否为m和n的公约数
if (m % i == 0 && n % i == 0) {
gcd = i;
}
}
lcm = m * n / gcd;
printf("最大公约数为:%d\n", gcd);
printf("最小公倍数为:%d\n", lcm);
return 0;
}
如果您有其它问题,请继续提问。
c语言输入两个正整数m,n求其最大公约数和最小公倍数
下面是C语言代码,可以输入两个正整数m和n,求它们的最大公约数和最小公倍数:
```c
#include <stdio.h>
int main() {
int m, n, a, b, temp, r = 0, min = 0;
printf("请输入两个正整数:\n");
scanf("%d%d", &m, &n);
a = m;
b = n;
if (a < b) { //交换大小顺序,大数对小数取余
temp = a;
a = b;
b = temp;
}
r = a % b;
while (r != 0) { //辗转相除求最大公因数,b即为最后的最大公因数
a = b;
b = r;
r = a % b;
}
min = (m * n) / b; //最小公倍数
printf("最大公约数:%d\n最小公倍数:%d\n", b, min);
return 0;
}
```
阅读全文