#include <stdio.h>
int main()
{
int i;
while(scanf("%d",&i)!=EOF)
{
int sum=0;
int j;
int h;
for(j=1;j<=i-1;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(sum==i)
{
printf("%d, its factors are ",i);
for(h=1;h<=i-1;h++)
{
if(i%h==0)
{
printf("%d ",h);
}
}
}
else
{
printf("no");
}
printf("\n");
}
return 0;
}
是不是printf("%d, its factors are ",i);中,its前面多了个空格?
总体代码没问题啊
for(j=1;j<=i-1;j++)
改为
for(j=2;j<=i;j++)