/*
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;
}