C语言求n以内的全部完全数

2025-02-06 11:56:14
推荐回答(3个)
回答1:

int main()
{
int n,k,i,sum;
printf("请输入一个正整数\n");
scanf("%d",&n);
printf("全部完全数为");
for(i=1;i<=n;i++)
{ sum=0; //添加这一行 就行了
for(k=1;k {
if(i%k==0)
sum+=k;
}
if(sum==i)
printf("%d",i);
}
}

回答2:

 再循环中,sum没有重新初始化,如此,sum的值就会一直加上去,越加越大,造成错误

#include

int main()

{

int n,k,i,sum;

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

scanf("%d",&n);

printf("全部完全数为");

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

{

for(k=1;k
{

if(i%k==0)

  sum+=k;

}

if(sum==i)

   printf("%d",i);

 
sum = 0; 
}

}

回答3:

for(k=1;k