我的网站

         
当前位置: 主页 > 我的网站25 >

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

时间:2024-10-21 08:28 来源:网络整理 转载:我的网站
一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,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 <= 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函数输出所有完数。