题目链接:
题目描述
一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。
输入描述:
题目没有任何输入。
输出描述:
输出2到60之间所有“完数”和“盈数”,并以如下形式输出:E: e1 e2 e3 ......(ei为完数)G: g1 g2 g3 ......(gi为盈数)其中两个数之间要有空格,行尾不加空格。 *判断是否满足条件 满足条件则存入队列
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 int deal(int x)11 {12 int sum=0;13 for(int i=1;i x) return 2;20 else return 0;21 }22 int main()23 {24 queue q1,q2;25 for(int i=2;i<=60;i++){26 if(deal(i)==1) q1.push(i);27 else if(deal(i)==2) q2.push(i);28 }29 cout<<"E:";30 while(q1.size()>0){31 cout<<" "< 0){37 cout<<" "<