/*
2022年4月14日17点45分
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
*/

#include <iostream>
using namespace std;

bool perfect(int n)
{
    int sum = 0, j = n;
    while (j != 1)
    {
        j--;
        if (n % j == 0) sum += j;
    }
    if (sum == n) return true;
    else return false;
}

int main()
{
    for (int i = 1; i <= 1000; i++)
    {
        if (perfect(i))
        {
            int a = i;
            cout << a << "=";
            for (int j = i - 1; j >= 1; j--)
            {
                if (a % j == 0)
                {
                    cout << j;
                    if (j != 1) cout << "+";
                }
            }
            cout << endl;
        }
    }
    return 0;
}