#include <iostream>
#include <vector>
using namespace std;

int main() {
    int factorSum; // 因子总和
    vector<int> factor;  // 因子
    vector<int> equalNumber; // 完数
    vector<int> overNumber; // 盈数
    vector<int>::iterator it;  // 迭代器
    for (int i = 2; i <= 60; i++) {
        factor.clear(); // 清空动态数组/上一轮因子
        factorSum = 0;  // 清空上一轮因子总和
        for (int j = 1; j < i; j++) {  // 会保证 j < i
            if (i % j == 0) {
                // 向尾部插入 要含数据
                // factor.pop_back 从尾部弹出,不用含参数
                factor.push_back(j);
            }
        }
        for (it = factor.begin(); it != factor.end(); it++) {
            factorSum += *it;  //高级指针,读取元素数据
        }
        if (factorSum == i) {
            equalNumber.push_back(i);
        } else if (factorSum > i) {
            overNumber.push_back(i);
        }
    }
    cout << "E:";
	for (it = equalNumber.begin(); it != equalNumber.end();it++) {
		 cout<< " " << *it;
	}
    cout<<endl;
	cout << "G:";
	for (it = overNumber.begin(); it != overNumber.end(); it++) {
		cout << " " << *it;
	}
	return 0;
}