C语言编程求一千以内完数
时间: 2024-09-18 11:18:38 浏览: 41
在C语言中,一个"完数"是指一个正整数的所有真因数(除了它本身以外的因子)之和等于该数本身的数学特性。例如,6是一个完数,因为它的真因数有1、2和3,它们的和正好是6。
下面是一个简单的C程序,用于找出1000以内的所有完数:
```c
#include <stdio.h>
// 函数定义来检查一个数是否是完数
int isPerfect(int num) {
int sum = 0;
for (int i = 1; i * i <= num; i++) {
if (num % i == 0) {
// 如果i是因子,那么它的另一个因子就是num/i
sum += i;
if (i != num / i) { // 防止重复计数相同的因子
sum += num / i;
}
}
}
return sum == num ? 1 : 0; // 返回1表示是完美数,0表示不是
}
// 主函数遍历并打印出1000以内的完数
int main() {
for (int i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
printf("%d 是一个完数。\n", i);
}
}
return 0;
}
```
这个程序首先定义了一个`isPerfect`函数,用于检查一个数是否是完数。然后在`main`函数中,从1到1000逐个检查,并打印出符合条件的完数。
阅读全文