思路
求出 2 到 60 之间数字的因子之和,然后进行比较,判断出是完数还是盈数,并用两个数组分别去存储。
#include<iostream>
#include<vector>
using namespace std;
int judge(int num){
int sum = 0;
for(int i = 1; i < num; i ++){
if(num % i == 0)
sum += i;
}
if(sum == num) return 1;
if(sum > num) return 0;
return -1;
}
int main(){
vector<int> e, g;
for(int i = 2; i <= 60; i ++){
if(judge(i) == 1) e.push_back(i);
else if(judge(i) == 0) g.push_back(i);
}
cout << "E:";
for(int i : e) cout << " " << i;
cout << endl;
cout << "G:";
for(int i : g) cout << " " << i;
return 0;
} 
京公网安备 11010502036488号