int m, i, s;
for (m = 1; m <= 1000; m++)
{
s = 0;
for (i = 1; i < m; i++)
if (m%i == 0)
s = s + i;
if (s == m)
{
printf("\n%d=", s);
for (i = 1; i < m; i++)
if (m%i == 0)
{
printf("%d", i); printf("+");
}
}
}
给你个对的 自己调调,看看自己哪里错了