1个回答
展开全部
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。
#include<stdio.h>
int sum(int n)
{ int i,s=1;
for(i=2; i*i<n; i++)
if(n%i==0)s+=i+n/i;
if(i*i==n&&n%i==0)s+=i;
return s;
}
int main()
{ int n,i;
scanf("%d",&n);
for(i=2; i<=n; i++)
if(sum(i)==i)
printf("%d\n",i);
return 0;
}
追问
不存在完数的时候输出no 应该怎么改呢
追答
已经修改完毕:
#include
int sum(int n)
{ int i,s=1;
for(i=2; i*i<n; i++)
if(n%i==0)s+=i+n/i;
if(i*i==n&&n%i==0)s+=i;
return s;
}
int main()
{ int n,i,k; //原来的k加错地方了
scanf("%d",&n);
for(i=2; i<=n; i++)
if(sum(i)==i)
{printf("%d\n",i);
k++;
}
if(!k)printf("no\n");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |