龙空技术网

每天一道c语言编程题,第30题,判断n以内的所有完数

于桐科技 251

前言:

如今我们对“c语言求数的因子”大体比较关注,兄弟们都需要分析一些“c语言求数的因子”的相关知识。那么小编同时在网络上网罗了一些关于“c语言求数的因子””的相关内容,希望你们能喜欢,兄弟们一起来了解一下吧!

#头条创作挑战赛#

一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数

#include <stdio.h>

int main() {

int n, i, j, sum;

printf("请输入一个正整数n:");

scanf("%d", &n);

printf("1到%d之间的所有完数为:\n", n);

for (i = 2; i <= n; ++i) {

sum = 1;

for (j = 2; j < i; ++j) {

if (i % j == 0) {

sum += j;

}

}

if (sum == i) {

printf("%d ", i);

}

}

printf("\n");

return 0;

}

当查找1到n中的所有完数时,需要对每个数字进行判断。因此,程序使用了一个for循环来遍历2到n之间的所有数字。

对于每个数字i,程序需要计算它的所有因子之和。因此,在内层for循环中,程序从2开始遍历到i-1,判断每个数字j是否为i的因子。如果是,就将j加到sum中。

当内层for循环结束后,如果sum等于i,则说明i是完数。此时,程序将i输出即可。

最后,程序通过printf函数输出所有完数。

标签: #c语言求数的因子