老师作业题,真心不会呀!

1) 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。编程找出 1000 以内的所有完全数,并输出使该数成为完全数的因子。(例如6=1+2+3。按照6, its factors are 1,2,3格式输出)。

老师要求因子要用数组输出,谢谢各位大佬了!!!!

如果问题得到解决的话,请点下采纳

// Q1065158.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
int main()
{
    int factors[200];
    int curr;
    int sum;
    for (int i = 1; i <= 1000; i++)
    {
        curr = 0;
        sum = 0;
        for (int j = 1; j < i; j++)
        {
            if (i % j == 0) 
            {
                factors[curr++] = j;
                sum += j;
            }
        }
        if (sum == i)
        {
            printf("%d=", i);
            for (int j = 0; j < curr; j++) printf("%s%d", (j == 0 ? "" : "+"), factors[j]);
            printf("\n");
        }
    }
    return 0;
}

6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
Press any key to continue . . .