- 列出所有满足条件的完数
- 完数:一个数恰好等于它的所有不同因子(除自身外)之和,如6=1+2+3
#include<iostream>
using namespace std;
#include<vector>
//列出满足条件的完数
//完数:一个数恰好等于它的所有不同因子之和
void main(){
vector<int>a;
int sum;
for (int i = 1; i < 10000; i++) {
sum = 0;
for (int j = 1; j <= i / 2; j++) {
if (i % j == 0) {
sum = sum + j;//i的所有因数(除自身)之和
}
}
if (sum == i) {
a.push_back(i);
}
}
int n;
//输出所有不超过n的完数
while (cin >> n) {
cout <<"0-10000内所有不超过"<< n<<"的完数有" << ":";
for (int k = 0; k < a.size(); k++) {
if (a[k] <= n)
cout << " " << a[k];
}
cout << endl;
}
}