
#include <iostream>
#include <vector>
using namespace std;
bool isPerfectNum(int num){
vector<int> vec;
vec.emplace_back(1);
for(int i = 2; i < num; i++){
if(num % i == 0){
vec.emplace_back(i);
}
}
int sum = 0;
for(int j = 0; j < vec.size(); ++j){
sum += vec[j];
}
if(sum == num)
return true;
else
return false;;
}
int main() {
int num;
cin >> num;
int count = 0;
for(int i = 1; i <=num; i++){
if(isPerfectNum(i)){
count++;
}
}
cout << count - 1 << endl; //1不是所以减去1个
}
该程序使用C++编写,功能是找出给定范围内(不包括1)的所有完美数。完美数是指其所有真因数(除了自身以外的因数)之和等于自身的正整数。代码通过创建一个vector存储因数,然后计算并检查因数和是否等于原数。
577

被折叠的 条评论
为什么被折叠?



