#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;
}
``
cpp题目描述求正整数2和n之间的完全数一行一个数。完全数:因子之和等于它本身的自然数如6=1+2+3输入格式输入n输出格式一行一个数按由小到大的顺序。输入输出样例样例 1输入样例 复制7输出样例 复制6数据范围与提示n10000

原文地址: http://www.cveoy.top/t/topic/iTeD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录