一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数
#include
int main() {
int n, i, j, sum;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("1到%d之间的所有完数为:\n", n);
for (i = 2; 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函数输出所有完数。
领取专属 10元无门槛券
私享最新 技术干货