用c语言循环 输入两个正整数m和n,输出他们的最小公倍数
时间: 2024-10-23 07:06:40 浏览: 24
在C语言中,计算两个正整数m和n的最小公倍数(LCM)的一种常见方法是利用欧几里得算法(也称为辗转相除法),再结合公式 `LCM(a, b) = |a * b| / GCD(a, b)` 来实现,其中 GCD 表示最大公约数。
首先,我们需要编写函数来计算最大公约数:
```c
// 函数声明
int gcd(int a, int b);
// 计算最大公约数的辅助函数
static inline int euclidean_algorithm(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
```
然后,我们可以创建主函数来获取输入并计算最小公倍数:
```c
#include <stdio.h>
int main() {
int m, n;
// 输入两个正整数
printf("请输入两个正整数m和n:");
scanf("%d%d", &m, &n);
// 检查输入是否有效
if (m <= 0 || n <= 0) {
printf("请输入正整数。\n");
return 1;
}
// 计算最小公倍数
int lcm = (m * n) / euclidean_algorithm(m, n);
// 输出结果
printf("它们的最小公倍数是:%d\n", lcm);
return 0;
}
// 最大公约数函数实现
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
```
在这个程序中,用户可以输入两个正整数m和n,程序会计算并输出它们的最小公倍数。如果输入不是正整数,程序还会给出错误提示。
阅读全文