题目描述
求1-n内的完数,所谓的完数是这样的数,它的所有因子相加等于它自身,比如6有3个因子1,2,3,1+2+3=6,那么6是完数。即完数是等于其所有因子相加和的数。
输入格式
测试数据有多组,输入n,n数据范围不大。
输出
对于每组输入,请输出1-n内所有的完数。如有案例输出有多个数字,用空格隔开,输出最后不要有多余的空格。
样例输入
6
样例输出
6
# include"stdio.h"
int main()
{
int n,i,j,sum,num=0,a[1000];
while(scanf("%d",&n)!=EOF)
{
for(i=2;i<=n;i++)
{
sum=0;
for(j=1;j<i;j++)
if(i%j==0)
sum+=j;
if(sum==i)
a[num++]=i;
}
for(j=0;j<num;j++)
if(j==num-1)
printf("%d\n",a[j]);
else
printf("%d ",a[j]);
num=0;
}
return 0;
}