//题目有问题,盈数要自己加一个2
#include <iostream>
#include <vector>
using namespace std;
vector<int> e;//完数
vector<int> g;//盈数
int yinzi(int x)
{
int sum=0;
for(int i=2;i*i<=x;i++)
{
if(x%i==0)
{
if((x/i)!=i)
{
sum+=(x/i);
sum+=i;
}
else {
{
sum+=i;
}
}
}
}
sum++;
if(sum==x)return 1;//是完数
else if(sum>x)return 0;//是盈数
else{
return 2;//啥也不是
}
}
int main() {
for(int i=2;i<=60;i++)
{
if(yinzi(i)==1)
{
e.push_back(i);
}
else if(yinzi(i)==0)
{
g.push_back(i);
}
}
cout<<"E:";
for(int i=0;i<e.size();i++)
{
cout<<" "<<e[i];
}
//cout<<endl;
cout<<" G: 2";
for(int i=0;i<g.size();i++)
{
cout<<" "<<g[i];
}
return 0;
}