#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; }