求1000以内的所有完全数

#include<stdio.h>//为什么运行结果是空白的,这是书上的一个分析题
int main(void)
{
int a,i,m;
for(a=1;a<=1000;a++)
{
m=0;
for(i=1;i<=a/2;i++)//i=1这我写上去的
if(!(a%i))m=m+1;//m=m+1这也是我写上去的,写上去后运行是空白的,为什么
if(m==a)
printf("%4d",a);}
return 0;
}

你的逻辑有问题,完全数是指他的所有真因子和为该数,你写的m=m+1是不对的。换成m=m+i,然后你去试试,如果不对的话,可以来问我