求俩个数的最小公倍数c语言实现
时间: 2024-12-22 08:21:45 浏览: 15
在C语言中,求两个整数的最小公倍数(LCM,Least Common Multiple)可以采用多种方法,其中一种常用的是欧几里得算法(Euclidean Algorithm)结合两个数的最大公约数(GCD,Greatest Common Divisor)。下面是一个简单的实现:
```c
#include <stdio.h>
// 定义计算最大公约数的函数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 利用gcd函数计算最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b); // 根据公式 lcm(a, b) = |a*b| / gcd(a, b)
}
int main() {
int num1, num2;
printf("请输入两个正整数:");
scanf("%d %d", &num1, &num2);
if (num1 <= 0 || num2 <= 0) {
printf("输入的数值应为正整数。\n");
return 1;
}
int lcm_result = lcm(num1, num2);
printf("两数的最小公倍数是:%d\n", lcm_result);
return 0;
}
```
在这个程序中,首先定义了一个递归的`gcd`函数用于求最大公约数,然后在`lcm`函数中利用这个结果计算最小公倍数。用户输入两个数,程序会计算并输出它们的最小公倍数。
阅读全文