如何用C语言 编程实现:输出1000以内的所有完数, 完数是指该数等于该数的所有除自身之外的因子之和。例如:6=1+2+3,28=1+2+4+7+14。
时间: 2024-12-08 16:24:59 浏览: 153
在C语言中,你可以通过遍历1到1000之间的每个整数,然后检查它是否是自身的因子之和来找出完数。以下是实现这一功能的一个简单示例:
```c
#include <stdio.h>
#include <stdbool.h>
// 函数定义,用于检查一个数是否是完数
bool isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i * i <= num; i++) { // 只需考虑i * i <= n的情况
if (num % i == 0) { // 如果i是num的因子
if (i != num / i) { // 避免重复计数
sum += i;
}
sum += num / i; // 同时加上另一个因子
}
}
return sum == num && num > 1; // 如果sum等于num并且num大于1,则它是完数
}
int main() {
for (int i = 1; i <= 1000; i++) {
if (isPerfectNumber(i)) {
printf("%d 是一个完数。\n", i);
}
}
return 0;
}
```
在这个程序中,`isPerfectNumber`函数检查给定的数字是否是完数,`main`函数则遍历并打印出1000以内的所有完数。
阅读全文
相关推荐


















