1000以内的完数c语言
时间: 2024-11-21 22:02:43 浏览: 12
1000以内的完数
5星 · 资源好评率100%
完数是指一个正整数的所有真因子(即除了它本身以外的因数)加起来恰好等于这个数自身的数学特性。在C语言中计算1000以内所有完数,我们可以使用循环遍历和条件判断的方式来实现。
下面是一个简单的C程序示例:
```c
#include <stdio.h>
// 判断是否为完数的辅助函数
int isPerfect(int num) {
int sum = 1; // 初始化为1,因为1也是所有正整数的因子
for (int i = 2; i * i <= num; i++) { // 只需考虑i * i <= num的情况,节省时间
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果不是自身,再加一次它的配对因子
sum += num / i;
}
}
}
return sum == num; // 返回sum是否等于num,如果相等就是完数
}
int main() {
int i;
printf("完美数(1000以内):\n");
for (i = 1; i <= 1000; i++) {
if (isPerfect(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
在这个程序里,我们定义了一个`isPerfect`函数用于检查一个数是否是完数,并在主函数中通过循环查找1到1000之间的完数,然后打印出来。
阅读全文