//按照书上,使用向量,书上求和另设了个函数
#include <iostream>
#include <cstdio>
#include <vector> //#1
using namespace std;
vector<int> e; //在这加#2
vector<int> g;
int main(){
int a[61][30]; //#3
int sum[60];
int m=0;
int n=0;
for(int i=2;i<=60;++i){//这里想让i从1-60,必须a的长度为6!!!!!!!!!!!!!!! //#
int k=0;//随每个i变化,初始化应该在循环里 //#4
for(int j=1;j<=30&&j<i;++j){
if(i%j==0){
a[i][k]=j;
++k;
}
}
sum[i]=0;
for(int p=0;p<k;++p){
sum[i]+=a[i][p];
}
if(sum[i]==i)
{
e.push_back(i);//在这改一下 //#5
++m;
}else if(sum[i]>i){
g.push_back(i);
++n;
}
}
printf("E:");
for(int i=0;i<m;++i){
printf(" %d",e[i]); //不用改#6
}
printf("\n");
printf("G:");
for(int i=0;i<n;++i){
printf(" %d",g[i]);
}
}
// #include <iostream>
// #include <cstdio>
// using namespace std;
// //陈独秀的代码
// // int main(){
// // printf("E: 6 28\nG: 12 18 20 24 30 36 40 42 48 54 56 60");
// // }
// int main(){
// // int arr[]={1,2,3,5,7,11,13,17,19,23};//4也是因子 //#1
// int a[61][30]; //#2
// int sum[60];
// int e[60];
// int g[60];
// int m=0;
// int n=0;
// for(int i=2;i<=60;++i){//这里想让i从1-60,必须a的长度为6!!!!!!!!!!!!!!! //#
// int k=0;//随每个i变化,初始化应该在循环里 //#3
// for(int j=1;j<=30&&j<i;++j){
// if(i%j==0){
// a[i][k]=j;
// ++k;
// }
// }
// sum[i]=0;
// for(int p=0;p<k;++p){
// sum[i]+=a[i][p];
// }
// if(sum[i]==i)
// {
// e[m]=i;
// ++m;
// }else if(sum[i]>i){
// g[n]=i;
// ++n;
// }
// }
// printf("E:");
// for(int i=0;i<m;++i){
// printf(" %d",e[i]);
// }
// printf("\n");
// printf("G:");
// for(int i=0;i<n;++i){
// printf(" %d",g[i]);
// }
// }