c语言程序设计问题
【问题描述】一个整数,如果其所有小于它本身的因子(包括1)之和正好等于该数,则称其为“完全数”。编写程序计算某一范围内的所有“完全数”。
【输入形式】
从控制台输入数据范围的下限m和上限n,m和n都为整数,且1<=m<=n<=10000,m和n之间用一个空格分割。
【输出形式】
向控制台输出m和n之间的所有“完全数”(包括m和n本身),所有输出的数据以从小到大的顺序显示在一行上,各数之间以一个空格分割。若该范围内没有完全数,则输出字符串No Answer。
【样例1输入】
1 100
【样例1输出】
6 28
我的代码如下:
#include<stdio.h>
int main()
{
int m,n,x,sum,y,a;
sum=0,a=0;
scanf("%d%d",&m,&n);
for(x=m;x<=n;x++)
{
for(y=1;y<x;y++)
{
if(x%y==0)
sum+=y;
}
if(sum==x)
{
printf("%d",x);
a++;
}
}
if(a==0)
printf("No Answer");
return 0;
}
请各位大佬帮忙看看是哪错了,谢谢谢谢。