[最大公约数和最小公倍数]输入两个正整数m和n,求其最大公约数和最小公倍数。 运行结果示例: 输入: 48,36 输出: 48和36的最大公约数和最小公倍数分别是12,144
时间: 2024-06-15 13:08:33 浏览: 117
要求两个正整数m和n的最大公约数和最小公倍数,可以使用辗转相除法来求解。
首先,我们定义一个函数来计算两个数的最大公约数。辗转相除法的基本思想是,用较大的数除以较小的数,然后用余数替换较大的数,再用新的较大的数除以新的较小的数,如此循环,直到余数为0。此时,较小的数就是最大公约数。
接下来,我们可以使用最大公约数来计算最小公倍数。最小公倍数等于两个数的乘积除以最大公约数。
下面是C语言的代码实现:
```c
#include <stdio.h>
// 计算最大公约数
int gcd(int m, int n) {
int temp;
while (n != 0) {
temp = m % n;
m = n;
n = temp;
}
return m;
}
// 计算最小公倍数
int lcm(int m, int n) {
return m * n / gcd(m, n);
}
int main() {
int m, n;
printf("请输入两个正整数m和n:");
scanf("%d,%d", &m, &n);
int max_common_divisor = gcd(m, n);
int min_common_multiple = lcm(m, n);
printf("%d和%d的最大公约数和最小公倍数分别是%d,%d\n", m, n, max_common_divisor, min_common_multiple);
return 0;
}
```
运行结果示例:
```
请输入两个正整数m和n:48,36
48和36的最大公约数和最小公倍数分别是12,144
```
阅读全文