用c语言找出1000以内所有全数
时间: 2024-09-27 09:16:12 浏览: 35
在C语言中,全数是指一个正整数的所有因数之和等于该数本身的数,比如6的全数就是1+2+3+6=12。为了找出1000以内的所有全数,你可以遍历1到1000,对于每个数,检查它的所有因子(包括1和自身),如果它们的和等于该数本身,则记录下来。
下面是一个简单的示例程序,它使用了循环和条件判断来实现这个功能:
```c
#include <stdio.h>
// 辅助函数,用于计算一个数的因子
int count_factors(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; ++i) {
if (num % i == 0) {
sum += i;
}
}
return sum;
}
// 主函数,找出并打印1000以内的全数
void find_perfect_numbers() {
for (int i = 1; i <= 1000; ++i) {
if (count_factors(i) == i) {
printf("%d 是1000以内的全数。\n", i);
}
}
}
int main() {
find_perfect_numbers();
return 0;
}
```
当你运行这个程序,它会输出1000以内的所有全数。注意,这个算法的时间复杂度较高,因为需要对每个数求因子,所以对于较大的数值范围,可能会有性能问题。
阅读全文