//按照书上,使用向量,书上求和另设了个函数 #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]); // } // }