C语言求多个数的最小公倍数
时间: 2023-12-12 09:03:42 浏览: 41
以下是使用辗转相除法求解多个数的最小公倍数的C语言代码:
```c
#include <stdio.h>
// 求两个数的最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求多个数的最小公倍数
int lcm(int n, int arr[]) {
int res = 1;
for (int i = 0; i < n; i++) {
res = res * arr[i] / gcd(res, arr[i]);
}
return res;
}
int main() {
int arr[] = {2, 3, 4, 5, 6};
int n = sizeof(arr) / sizeof(arr[0]);
int result = lcm(n, arr);
printf("The least common multiple is %d", result);
return 0;
}
```
该程序首先定义了一个求两个数的最大公约数的函数`gcd()`,然后定义了一个求多个数的最小公倍数的函数`lcm()`。`lcm()`函数使用了一个变量`res`来记录最小公倍数,初始值为1。然后遍历所有的数字,每次将`res`乘以当前数字,再除以`res`和当前数字的最大公约数,即可得到新的`res`值。最后返回`res`即为多个数的最小公倍数。
在`main()`函数中,我们定义了一个数组`arr`来存储要求最小公倍数的多个数字,然后调用`lcm()`函数求解最小公倍数,并输出结果。