c 语言求最小公倍数不用gcd
时间: 2024-11-07 21:23:25 浏览: 3
c 语言求最小公倍数.md
在C语言中,直接计算两个整数的最小公倍数(LCM)而无需先求最大公约数(GCD),可以采用“两个数乘积除以它们的最大公约数等于最小公倍数”的性质。这里提供一个简单的非递归实现方法:
```c
#include <stdio.h>
// 通过欧几里得算法(辗转相除法)快速计算最大公约数
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
// 根据GCD的性质计算最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int num1, num2;
printf("请输入两个正整数:");
scanf("%d %d", &num1, &num2);
// 使用lcm函数计算并输出结果
int result = lcm(num1, num2);
printf("两数的最小公倍数是:%d\n", result);
return 0;
}
```
在这个程序中,我们首先定义了一个`gcd`函数来计算两个数的最大公约数,然后在`lcm`函数中利用这个GCD值来计算最小公倍数。
阅读全文