本题用到了vector,和vector相关的一些函数,注意解题、输出的细节

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

int main() {
    //由于要存储到最后用来输出的“数组”是动态增长的,所以用vector
    vector<int> Evec;   //完数
    vector<int> Gvec;   //盈数
    for(int num = 2;num<=60;num++){
        int sum = 0;
        for(int i = 1;i<num;i++){   //注意这里因子1仍要算进去,题目只排除了该数本身
            if(num%i == 0){
                sum += i;
            }
        }
        if(sum == num){
            Evec.push_back(num);    //push_back()的使用
        }
        else if(sum > num){
            Gvec.push_back(num);
        }
    }

    //注意输出格式
    printf("E:");
    //使用迭代器(可以理解为指针)访问,输出时要加*
    //访问vector元素也可以使用下标vector[i]和vector.size()
    for(vector<int>::iterator it1 = Evec.begin();it1 != Evec.end();it1++){
        printf(" %d",*it1);
    }
    printf("\n");

    printf("G:");
    for(vector<int>::iterator it2 = Gvec.begin();it2 != Gvec.end();it2++){
        printf(" %d",*it2);
    }
    printf("\n");
}