求1000以内的完数 c语言
时间: 2024-06-30 13:00:19 浏览: 243
Java找出1000以内的所有完数
5星 · 资源好评率100%
在C语言中,完数(Perfect Number)是指一个正整数的所有真因子(除了自身之外的因子)加起来恰好等于该数自身的和。例如,6是一个完数,因为1+2+3=6。以下是用C语言编写的一个简单程序,用于找出1000以内的所有完数:
```c
#include <stdio.h>
// 定义一个函数来检查是否为完数
int isPerfect(int num) {
int sum = 1; // 初始化因子和为1(包括1)
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
// 如果num能被i整除,说明i和num/i都是因子
sum += i;
if (i != num / i) { // 如果i不等于num/i,则加入另一个因子
sum += num / i;
}
}
}
// 如果sum等于num,那么num就是完数
return sum == num;
}
int main() {
printf("寻找1000以内的完数:\n");
for (int i = 1; i < 1000; i++) {
if (isPerfect(i)) {
printf("%d 是一个完数.\n", i);
}
}
return 0;
}
阅读全文