/*
总的来讲,1.先判断是不是完数
2.再反过来求因数
3.输出格式分解开来
*/
#include <iostream>
using namespace std;
int main()
{
int i,j,s;
for(i=2;i<=1000;i++)
{
s = 0;
for(j=1;j<=i-1;j++ )
{
if(i%j==0)
s += j;
}
if(s==i) //要判断的是总的s;所以这个是并列关系
{
cout<<s<<" = 1"; //任何一个完数都是s = 1……所以不妨直接输出
for(int k=2;k<=s;k++) //反向求因数
{
if(s%k==0)
{ if(k<s)
cout<<"+"<<k; //后面的就输出+x1+x2+……
else
cout<<"\n"; //满了换行
}
}
}
}
return 0;
}