C语言编程求出1000之内的所有完数,要求每行输出5个,并统计完数的个数。一个数如果恰好等于它的因子(除自身外)之和,这个数就称为"完
时间: 2024-03-18 20:41:01 浏览: 123
数"。以下是C语言代码实现:
```c
#include<stdio.h>
int get_factors(int num, int factors[]) {
int count = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
factors[count] = i;
count++;
}
}
return count;
}
int main() {
int perfect_numbers[30];
int count = 0;
for (int i = 1; i <= 1000; i++) {
int factors[100];
int factor_count = get_factors(i, factors);
int sum = 0;
for (int j = 0; j < factor_count; j++) {
sum += factors[j];
}
if (sum == i) {
perfect_numbers[count] = i;
count++;
}
}
printf("完数个数为%d\n", count);
for (int i = 0; i < count; i++) {
printf("%d ", perfect_numbers[i]);
if ((i + 1) % 5 == 0 || i == count -1) {
printf("\n");
}
}
return 0;
}
```
输出结果为:
```
完数个数为3
6 28 496
```
解释:与前面Python代码实现类似,使用一个函数`get_factors`来获取一个数的因子,并判断是否是完数。在主函数中遍历1到1000之间的整数,如果是完数则存入数组`perfect_numbers`中,同时统计完数的个数。最后按照要求每行输出5个完数。
阅读全文