用c语言编写一个程序,输出2~1000之间的所有完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身,例如: 6=1+2+3 28=1+2+4+7+14
时间: 2024-09-29 17:01:49 浏览: 47
水仙花数c语言程序.docx
在C语言中,我们可以编写一个程序来找出2到1000之间的所有完全数。下面是一个简单的示例:
```c
#include <stdio.h>
// 函数声明:检查是否为完全数
int isPerfect(int num);
int main() {
int i;
printf("完全数:\n");
for (i = 2; i <= 1000; ++i) {
if (isPerfect(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
// 完全数检查函数
int isPerfect(int num) {
int sum = 1; // 除了1之外,其他因子从2开始加
for (int i = 2; i * i <= num; ++i) { // 只需要检查到num的平方根即可
if (num % i == 0) { // 如果num能被i整除,说明i和num/i是因子
sum += i;
if (i != num / i) { // 如果i不是num/i,则再次加入num/i
sum += num / i;
}
}
}
// 检查sum是否等于num,若等于则返回1,表示是完全数;否则返回0
return sum == num ? 1 : 0;
}
```
这个程序首先定义了一个`isPerfect`函数用于检查一个给定的数字是否是完全数,然后在主函数中遍历2到1000的所有数,如果发现是完全数就打印出来。
阅读全文