/**
3、一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。
求出2到60之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 ......(ei为完数) G: g1 g2 g3 ......(gi为盈数)
2018-8-10 20:15-20:26
**/
#include<iostream>
using namespace std;
int main(){
int data[60]={0};
int start=0,end=59;
int sum;
for(int i=3;i<=60;i++){
sum=1;
for(int j=2;j<i;j++){
if(i%j==0)
sum+=j;
}
if(sum==i)
data[start++]=i;
else if(sum>i)
data[end--]=i;
}
cout<<"E:";
for(int i=0;i<start;i++)
cout<<data[i]<<" ";
cout<<endl;
cout<<"G:";
for(int i=59;i>end;i--)
cout<<data[i]<<" ";
cout<<endl;
return 0;
}
输出