用c语言编写一个程序,输出2~1000之间的所有完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身,例如: 6=1+2+3 28=1+2+4+7+14
时间: 2024-10-11 10:04:15 浏览: 51
水仙花数c语言程序.docx
在C语言中,我们可以编写一个程序来找出2到1000之间的所有完全数。下面是一个简单的方法:
```c
#include <stdio.h>
#include <stdbool.h> // 使用bool类型和宏定义
bool is_perfect_number(int num) {
int sum = 1; // 先加1避免重复计数1
for (int i = 2; i * i <= num; i++) { // 遍历到根号n
if (num % i == 0) {
sum += i; // 如果i是因子,加入和中
if (i != num / i) { // 如果还有另一个因子num/i,也加入和
sum += num / i;
}
}
}
return sum == num && num > 1; // 检查和是否等于num且num大于1(排除1)
}
int main() {
for (int i = 2; i <= 1000; i++) {
if (is_perfect_number(i)) {
printf("%d 是一个完全数。\n", i);
}
}
return 0;
}
```
这个程序定义了一个`is_perfect_number`函数,检查给定的数是否为完全数。然后在主函数里,对2到1000范围内的每个数调用此函数,并打印出结果。
阅读全文