求1000以内的“完全数”
时间: 2024-11-27 20:12:25 浏览: 0
在数学中,一个完全数是指它的所有真因数(除了本身以外的正因子)加起来恰好等于这个数本身的整数。比如6是一个完全数,因为它的真因数有1、2、3,它们之和为6。
在C语言中,要找出1000以内的完全数,我们可以遍历从1到1000的每个数字,检查其所有小于它本身的因数之和是否等于它自己。如果相等,则该数是完全数。下面是一个简单的C程序示例:
```c
#include <stdio.h>
int isPerfect(int num) {
int sum = 1; // 包括1在内的因子
for (int i = 2; i * i <= num; i++) { // 只需检查到i*i大于num时
if (num % i == 0) {
if (i != num / i) { // 如果还有另一个因子,例如i * (num/i)不等于i
sum += i;
sum += num / i;
} else {
sum += i; // 如果i已经是num/i,只加一次
}
}
}
return sum == num;
}
int main() {
for (int i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
printf("%d 是1000以内的完全数。\n", i);
}
}
return 0;
}
```
阅读全文