#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
for(i=1;i<1000;i++)
{
int m;
int j,x=0;
for(j=1;j<=(i/2);j++)
{
if(i%j==0)
x=x+j;
}
if(i==x)
{
printf("%d=1",i);
for(m=2;m<=(i/2);m++)
{
if(i%m==0)
printf("+%d",m);
}
printf("\n");
}}
return 0;}
照着答案改对了,但是我无法理解,为什么在最开始定义所有数据类型的时候会不出编译结果。