用C语言编写程序找出1000之内的所有完数
时间: 2024-10-23 07:15:22 浏览: 68
在C语言中,一个完全数是指它的所有真因数(除了自身以外的正因子)加起来正好等于这个数本身的整数。以下是用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是因子,则sum加上i和num/i(若相等则只加一次)
sum += i;
if (i != num / i) {
sum += num / i;
}
}
}
return sum == num;
}
int main() {
int i;
printf("完美的数字在1到1000之间:\n");
for (i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
在这个程序中,`isPerfect()` 函数通过循环遍历从1到sqrt(num),寻找num的所有因子,并将它们加起来。如果最后的结果等于num,那么num就是一个完数。
阅读全文