1.方法一
#include <stdio.h>
void main()
{ int i,j,k,s;
for (i=2;i<=1000;i++)
{ s=0;
for (j=1;j<i;j++) if((i%j)==0) s=s+j;
if (s==i)
{ printf("i=%d ",i);
for (j=1;j<i;j++) if((i%j)==0) printf("%d ",j);
printf("\n");
}
}
}
2.方法二
#include <stdio.h>
void main()
{ static int k[10];
int i,j,n,s;
for (j=2;j<=1000;j++)
{ n=-1;s=j;
for (i=1;i<j;i++)
{ if((j%i)==0)
{ n++;
s=s-i;
k[n]=i;
}
}
if (s==0)
{ printf("\nj=%d ",j);
for (i=0;i<=n;i++) printf("%d ",k[i]);
}
}
}