一个数如果恰好等于它的因子之和,则称该数为 完全数(Perfect number)。完全数是一种特殊的自然数,它等于其所有真因子(即除了自身以外的约数)之和。例如,6 的真因子是 1、2 和 3,而 1 + 2 + 3 = 6,所以 6 是一个完全数。
要判断一个数是否为完全数,可以遵循以下步骤:
1. 找出该数的所有真因子(即除了自身以外的约数)。
2. 将这些真因子相加。
3. 检查相加的结果是否等于原数。
如果等于原数,则该数是一个完全数;否则,它不是完全数。
```c
include
int main() {
int i, j, n, s;
for (i = 1; i < 1000; i++) {
n = 0;
s = i;
for (j = 1; j < i; j++) {
if (i % j == 0) {
n++;
s = s - j;
}
}
if (s == 0) {
printf("%d is a perfect number: ", i);
for (j = 1; j <= n; j++) {
printf("%d, ", j);
}
printf("\n");
}
}
return 0;
}
```
运行这个程序,将会输出 1000 以内的所有完全数及其因子。