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