用c语言写出1到1000中所有的完数
时间: 2024-12-11 16:30:19 浏览: 17
在C语言中,一个"完数"也称为完美数,是指一个正整数的所有真因子(除了本身以外的因数)加起来恰好等于这个数本身的和。例如6是一个完数,因为它可以分解成1 + 2 + 3,这三者之和正好等于6。
下面是一个简单的C程序,用于找出1到1000之间的所有完数:
```c
#include <stdio.h>
// 定义函数检查是否是完美数
int isPerfect(int num) {
int sum = 1;
for (int i = 2; 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表示不是
}
int main() {
printf("完美数在1到1000范围内的有:\n");
for (int i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
当你运行这个程序,它会打印出1到1000之间的所有完美数。
阅读全文