C语言中求正整数n之内的所有完数
时间: 2024-12-18 12:18:42 浏览: 1
C语言经典实例 经典c程序100例
在C语言中,一个完数(Perfect Number)是指一个数的所有真因数(除了它自身以外的因子)加起来正好等于这个数本身。例如,6是一个完数,因为它的因数有1、2和3,它们的和就是6。
要找出一个正整数n内的所有完数,可以编写一个循环,检查每个数是否是完数。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPerfect(int num) {
int sum = 0;
for (int i = 1; i * i <= num; i++) { // 只需检查到 sqrt(num)
if (num % i == 0) {
if (i * i != num) {
sum += i; // 如果不是完全平方,则包含两个因子
}
sum += num / i;
}
}
return sum == num && num > 1; // 如果sum等于num且num大于1,说明是完数
}
void findPerfectNumbers(int n) {
for (int i = 1; i <= n; i++) {
if (isPerfect(i)) {
printf("%d 是一个完数。\n", i);
}
}
}
int main() {
int limit = 10000; // 设置查找范围,这里改为需要查找的具体数值
findPerfectNumbers(limit);
return 0;
}
```
在这个程序中,`isPerfect`函数用于检测一个数是否为完数,而`findPerfectNumbers`函数则遍历指定范围内的数字并打印出所有的完数。
阅读全文