#include<cstdio>
#include<vector>
#include<stdlib.h>
using namespace std;
int Sum(int i){//定义一个求和函数,输入变量是i(即题目里规定的在2到60之间的数)
int sum =0;//初始值sum为0,因为要录入第一个因子又要初始化
for (int j = 1; j < i; ++j){//不断地给定的i循环迭代
if(i%j==0){//因子满足的条件是整除
sum=sum+j;//因子求和
}
}
return sum;//返回求和的值
}
int main(){
vector<int> Evec;//完数动态数组
vector<int> Gvec;//盈数动态数组
for (int i = 2; i <= 60; ++i){//循环迭代
if(i==Sum(i)){//完数的判定条件
Evec.push_back(i);//将这个完数推入数组
}
else if(i<Sum(i)){//盈数判定条件
Gvec.push_back(i);//将这个盈数推入数组
}
}
printf("E:");
for (unsigned i = 0; i < Evec.size(); ++i){//循环打印完数
printf(" %d",Evec[i]);
}
printf("\n");
printf("G:");
for (unsigned i = 0; i < Gvec.size(); ++i){//循环打印盈数
printf(" %d",Gvec[i]);
}
printf("\n");
system("pause");
}