如何用c语言求出n个数的所有公约数
时间: 2024-01-26 12:05:17 浏览: 23
可以使用以下代码来求出n个数的所有公约数:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int n;
printf("请输入n的值:");
scanf("%d", &n);
int a[n];
printf("请输入这%d个数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int result = a[0];
for (int i = 1; i < n; i++) {
result = gcd(result, a[i]);
}
printf("这%d个数的公约数有:", n);
for (int i = 1; i <= result; i++) {
if (result % i == 0) {
printf("%d ", i);
}
}
return 0;
}
```
这段代码中,我们首先定义了一个 `gcd` 函数来求两个数的最大公约数。然后在 `main` 函数中,我们先读入n个数,然后使用一个变量 `result` 来存储这n个数的最大公约数。最后,我们遍历 `result` 的所有因数,输出所有的公约数。