C语言求出1-1000之间的完全数
时间: 2024-10-21 14:06:05 浏览: 25
在C语言中,一个完全数是指能够表示为所有小于它的正因子(包括1和它本身)之和的自然数。例如,6是一个完全数,因为它可以表示为1 + 2 + 3 = 6。下面是计算1到1000之间完全数的一个简单示例:
```c
#include <stdio.h>
int isPerfect(int num) {
int sum = 1; // 初始化因子和为1,因为1总是因子
for (int i = 2; i * i <= num; i++) { // 只需检查到sqrt(num)
if (num % i == 0) { // 如果i是因子
sum += i;
if (i != num / i) { // 如果i不是num的平方根,则添加另一个因子
sum += num / i;
}
}
}
return sum == num; // 返回如果因子和等于原数则为完美数
}
int main() {
int i;
printf("Perfect numbers between 1 and 1000 are:\n");
for (i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
printf("%d ", i);
}
}
return 0;
}
```
在这个程序中,`isPerfect`函数用于检查一个数是否是完美的,主函数遍历1到1000,打印出所有的完美数。
阅读全文