如何用C语言编程来计算并输出两个正整数m和n的最大公约数以及最小公倍数,给出详细的步骤和代码示例?
时间: 2024-11-15 18:27:50 浏览: 60
在C语言中,我们可以使用欧几里得算法(也称辗转相除法)来计算最大公约数(GCD),然后利用这个结果和原始数字求出最小公倍数(LCM)。以下是具体的步骤和代码示例:
**步骤1**: 定义函数计算GCD
```c
int gcd(int m, int n) {
if (n == 0)
return m;
else
return gcd(n, m % n);
}
```
**步骤2**: 定义函数计算LCM
由于`LCM(a, b) = |a * b| / GCD(a, b)`,我们可以直接根据上面的gcd函数编写lcm函数:
```c
int lcm(int m, int n) {
return (m * n) / gcd(m, n);
}
```
**步骤3**: 主函数中输入两个正整数并输出结果
```c
#include <stdio.h>
int main() {
int m, n, result;
printf("请输入两个正整数: ");
scanf("%d %d", &m, &n);
// 计算最大公约数
result = gcd(m, n);
printf("最大公约数(GCD): %d\n", result);
// 计算并输出最小公倍数
result = lcm(m, n);
printf("最小公倍数(LCM): %d\n", result);
return 0;
}
```
现在你可以将上述代码复制到C文件中运行,它会提示用户输入两个正整数,并输出它们的最大公约数和最小公倍数。
阅读全文