C语言编算法找出1000以内所有完数
时间: 2024-10-11 19:13:13 浏览: 51
在C语言中,查找1000以内所有的完全数需要编写一个简单的循环和条件判断程序。完全数是指除了自身以外的所有正因数之和等于该数本身的自然数。以下是基本的C代码示例:
```c
#include <stdio.h>
int isPerfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) { // 只需检查到i * i <= num,因为更大的因子会重复计算
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果不是自身除以i,也需要加另一个因子
sum += num / i;
}
}
}
return sum == num; // 如果总和等于原数,则是完美数
}
void findPerfectNumbers(int limit) {
printf("完美数在%d以内的有:\n", limit);
for (int i = 1; i <= limit; i++) {
if (isPerfect(i)) {
printf("%d ", i); // 输出找到的完美数
}
}
printf("\n");
}
int main() {
findPerfectNumbers(1000);
return 0;
}
```
这个程序首先定义了一个`isPerfect`函数用于检测一个数字是否为完美数,然后在`findPerfectNumbers`函数中遍历1到指定限制范围内的每个数,并调用`isPerfect`进行验证。如果是完美数,就将其打印出来。
阅读全文