还有你的输出回车的语句不能放在if语句外面,那样就无条件执行了,所以最后修改后的代码是这样的:
#include<stdio.h>
int main()
{
int q,w,e,r=0;
for (q=1;q<=1000;q++)
{
for(w=1;w<q;w++)
{
e=q%w;
if(e==0)
{
r+=w;
}
}
if (q==r)
{
printf("%d its factors are ",q);
printf("%d ",w);
printf("\n");
}
r=0;
}
}