用C语言求若干个正整数的最大公约数,最小公倍数
时间: 2023-05-28 12:05:56 浏览: 117
最大公约数可以通过辗转相除法求解,最小公倍数则可以通过最大公约数求解。
以下是用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 n; // 正整数的个数
int nums[100]; // 存放正整数的数组
int i, result_gcd, result_lcm;
// 输入正整数的个数和数值
printf("请输入正整数的个数:");
scanf("%d", &n);
printf("请输入%d个正整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
// 求最大公约数和最小公倍数
result_gcd = nums[0];
result_lcm = nums[0];
for (i = 1; i < n; i++) {
result_gcd = gcd(result_gcd, nums[i]);
result_lcm = lcm(result_lcm, nums[i]);
}
// 输出结果
printf("这%d个正整数的最大公约数为:%d\n", n, result_gcd);
printf("这%d个正整数的最小公倍数为:%d\n", n, result_lcm);
return 0;
}
```
注意,该代码中对于输入的正整数个数和数值没有进行错误处理,实际使用时需要加入相关的判断和处理。
阅读全文