用简单的c语言求1~10000内的所有完美数。所谓的“完美数”是指这个数的所有真因子(即除自身的所有因子)的和恰好等于它本身。
时间: 2024-12-16 14:31:57 浏览: 18
在C语言中,求解1到10000内的所有完美数可以采用循环遍历和条件判断的方式来实现。下面是一个简单的示例程序:
```c
#include <stdio.h>
// 判断一个数是否为完美数的函数
int isPerfect(int num) {
int sum = 1; // 真因子的初始值设为1
for (int i = 2; i * i <= num; i++) { // 只需检查i*i<=num即可,因为大于sqrt(num)的因子会成对出现
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果除了自身还有其他因子,也需要加上
sum += num / i;
}
}
}
// 如果sum等于num,那么num就是完美数
return sum == num;
}
int main() {
int limit = 10000;
printf("完美数列表(1-10000):\n");
for (int i = 2; i <= limit; i++) {
if (isPerfect(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
运行此程序,它将输出1到10000之间的所有完美数。
阅读全文