问题 O: 1000以内的完数
题目描述
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
输入
一个sum (sum < 1000) ,表示测试数据的组数,接着sum行,每一行表示一个测试数据n,表示要求1到n以内的完数,1在这里不算是完数。
输出
范围内的完数,如果范围内没有完数请输出none,每组测试数据空出一行(如果完数有多个,每个数字后面都输出空格)。
样例输入
2
1
6
样例输出
none
6
提示
不要妄想输出答案。
my wrong:
#include
int main()
{
int n,i,sum,j,k,m;
scanf("%d",&j);
sum=0;
for(k=0; k<j; k++)
{
scanf("%d",&n);
for(m=1; m<n; m++)
{
for(i=1; i<m; i++)
{
if(m%i==0)
sum=i+sum;
}
}
if(sum==m)
{
printf("%d ",sum);
}
if(sum==0)
{
printf("none\n");
}
}
}