编写程序:用C语言求1000以内的完数
时间: 2025-03-25 08:02:49 浏览: 100
### 如何用C语言编写一个程序来计算1000以内的完数
完数是指一个数恰好等于它所有因子(不包括自身)之和。例如,6 的因子为 1、2 和 3,而 \(1 + 2 + 3 = 6\),所以 6 是一个完数。
以下是基于 C 语言的一个完整程序用于查找并打印 1 到 1000 范围内的所有完数:
```c
#include <stdio.h>
int main() {
int n, sum, factor;
for (n = 2; n <= 1000; n++) { // 遍历从2到1000的所有整数
sum = 0;
for (factor = 1; factor < n; factor++) { // 找出当前数的所有因子
if (n % factor == 0) { // 如果是因子则累加
sum += factor;
}
}
if (sum == n) { // 当前数的因子和等于该数本身时输出
printf("%d is a perfect number. Its factors are: ", n);
for (factor = 1; factor < n; factor++) {
if (n % factor == 0) {
printf("%d ", factor); // 输出所有的因子
}
}
printf("\n");
}
}
return 0;
}
```
#### 解析
上述代码通过双重循环结构实现了对完数的检测:
- 外层 `for` 循环遍历范围 `[2, 1000]` 中的所有正整数。
- 内层 `for` 循环负责找到外层数字的所有因子,并将其累加至变量 `sum` 中[^4]。
- 若某数字的因子总和正好等于该数字本身,则判定此数字为完数,并按照指定格式输出其值及其因子列表[^5]。
#### 示例运行结果
当执行以上代码时,会得到如下输出:
```
6 is a perfect number. Its factors are: 1 2 3
28 is a perfect number. Its factors are: 1 2 4 7 14
496 is a perfect number. Its factors are: 1 2 4 8 16 31 62 124 248
```
阅读全文
相关推荐



















