完数是指一个数恰好等于它的所有真因子(即除了它本身以外的因子)之和。例如,6是一个完数,因为1+2+3=6。请编写程序找出1到10000之间的所有完数。c语言
时间: 2024-12-13 12:21:38 浏览: 4
Perfect-Numbers:确定一个正整数是否是一个完美数
5星 · 资源好评率100%
在 C 语言中,我们可以编写一个循环遍历并检查每个数是否为完数的程序。以下是一个简单的示例:
```c
#include <stdio.h>
// 辅助函数用于计算一个数的所有因子之和
int sum_of_divisors(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) { // 如果i是num的因子
sum += i;
}
}
return sum;
}
// 主函数寻找并打印1到10000内的完数
int main() {
for (int i = 1; i <= 10000; i++) {
if (sum_of_divisors(i) == i && sum_of_divisors(i) != 1) { // 避免将1视为完数
printf("%d 是一个完数.\n", i);
}
}
return 0;
}
```
这个程序通过`sum_of_divisors`函数计算给定数字的所有因子,然后在主循环中检查这个和是否等于原始数字。如果相等并且不包括1(因为1总是每个非素数的因子),则输出该数是完数。
阅读全文