cpp题目描述求正整数2和n之间的完全数一行一个数。完全数:因子之和等于它本身的自然数如6=1+2+3输入格式输入n输出格式一行一个数按由小到大的顺序。输入输出样例样例 1输入样例 复制7输出样例 复制6数据范围与提示n10000
#include <iostream>
#include <vector>
using namespace std;
// 计算一个数的所有因子之和
int getFactorSum(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum;
}
int main() {
int n;
cin >> n;
vector<int> perfectNumbers; // 保存完全数的容器
for (int i = 2; i <= n; i++) {
if (getFactorSum(i) == i) { // 判断是否是完全数
perfectNumbers.push_back(i);
}
}
for (int i = 0; i < perfectNumbers.size(); i++) {
cout << perfectNumbers[i] << endl;
}
return 0;
}
``
原文地址: http://www.cveoy.top/t/topic/iTeD 著作权归作者所有。请勿转载和采集!