c语言编程怎么输出所有完数

时间:2025-01-28 12:47:03 网络游戏

在C语言中,要输出所有小于等于某个数(例如1000)的完数,可以使用以下步骤:

1. 编写一个函数来判断一个数是否是完数。这个函数需要遍历从1到该数的所有数字,计算它们的真因子之和,并检查这个和是否等于该数本身。

2. 在主函数中,遍历从1到该数的所有数字,并使用上述函数来判断每个数字是否是完数。如果是完数,则将其输出。

```c

include

// 判断一个数是否是完数

int isPerfectNumber(int num) {

int sum = 0;

for (int i = 1; i < num; i++) {

if (num % i == 0) {

sum += i;

}

}

return sum == num;

}

int main() {

int n = 1000; // 可以修改这个值来输出不同范围内的完数

printf("1000以内的所有完数:\n");

for (int i = 1; i <= n; i++) {

if (isPerfectNumber(i)) {

printf("%d ", i);

}

}

printf("\n");

return 0;

}

```

代码解释:

isPerfectNumber函数

接受一个整数`num`作为参数。

初始化一个变量`sum`为0。

使用一个`for`循环遍历从1到`num - 1`的所有数字。

如果`num`能被`i`整除,则将`i`加到`sum`中。

循环结束后,检查`sum`是否等于`num`,如果是,则返回1(表示是完数),否则返回0。

main函数

定义一个变量`n`,表示要输出完数的上限(这里设置为1000)。

打印输出“1000以内的所有完数:”。

使用一个`for`循环遍历从1到`n`的所有数字。

对于每个数字,调用`isPerfectNumber`函数来判断是否是完数。

如果是完数,则将该数字输出。

运行这个程序,将会输出1000以内的所有完数:6, 28, 496。