c语言编程找出1000内的所有完数
时间: 2024-11-13 17:26:30 浏览: 25
(完整版)c语言编程题答案解析.doc
在C语言编程中,完数也称为完美数,是指一个正整数等于其除自身以外的所有因数之和。比如6是一个完数,因为6 = 1 + 2 + 3。
下面是一个简单的C程序,用于找出1000以内的所有完数:
```c
#include <stdio.h>
int isPerfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
if (i != num / i)
sum += i + num / i; // 如果i不是num的平方根,则添加两个因子
else
sum += i; // 如果i是num的平方根,只加一次
}
}
return sum == num && num != 1; // 因为1不是完数,所以排除掉
}
void findPerfectNumbers(int limit) {
printf("Perfect numbers within %d:\n", limit);
for (int i = 2; i < limit; i++) {
if (isPerfect(i))
printf("%d ", i);
}
printf("\n");
}
int main() {
findPerfectNumbers(1000);
return 0;
}
```
这个程序首先定义了一个`isPerfect`函数来检查一个数是否是完数,然后在`findPerfectNumbers`函数中遍历1到给定限制(这里是1000),并打印出所有的完数。
阅读全文