怎么用C语言写最小公倍数
时间: 2024-09-28 18:17:26 浏览: 30
在C语言中计算两个数的最小公倍数(LCM),可以使用欧几里得算法(Euclidean algorithm),也称为辗转相除法。下面是使用C编写的一个简单函数,用于计算两个整数的最小公倍数:
```c
#include <stdio.h>
// 辗转相除法求最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 根据最大公约数计算最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int num1, num2;
printf("请输入两个正整数: ");
scanf("%d %d", &num1, &num2);
// 检查输入是否合法
if(num1 <= 0 || num2 <= 0) {
printf("输入错误! 请输入正整数。\n");
} else {
int lcm_result = lcm(num1, num2);
printf("最小公倍数是: %d\n", lcm_result);
}
return 0;
}
```
在这个程序中,我们首先定义了一个计算最大公约数(GCD)的辅助函数`gcd()`,然后利用公式 `lcm(a, b) = |a*b| / gcd(a, b)` 来计算最小公倍数。
阅读全文