#include <iostream> #include <stack> #include <string> #include<queue> #include<vector> #include<list>//双向链表 using namespace std;// bool isE(int x) { vector<int> v1; for (int i = 1; i < x; i++){ if(x%i==0){ v1.push_back(i); } } vector<int>::iterator it; int sum = 0; for(it = v1.begin(); it != v1.end(); it++) { sum += *it; } if (sum == x)return 1; else return 0; } bool isG(int x) { vector<int> v1; for (int i = 1; i < x; i++) { if (x % i == 0) { v1.push_back(i); } } vector<int>::iterator it; int sum = 0; for (it = v1.begin(); it != v1.end(); it++) { sum += *it; } if (sum >x)return 1; else return 0; } int main() { vector<int> E; vector<int> G; vector<int>::iterator ite, itg; ite = E.begin(); itg = G.begin(); for (int i = 2; i < 61; i++) { if (isE(i)) { E.push_back(i); } if (isG(i)) { G.push_back(i); } } cout << "E:"; for (ite = E.begin(); ite != E.end(); ite++) { cout <<" "<<*ite; } cout << endl; cout << "G:"; for (itg = G.begin(); itg != G.end(); itg++) { cout << " "<< *itg ; } }