HJ56 完全数计算

描述

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

输入n,请输出n以内(含n)完全数的个数。

数据范围: 1≤n≤5×105 1≤n≤5×105 

输入描述:

输入一个数字n

输出描述:

输出不超过n的完全数的个数

示例1

输入:1000
输出:3
#include 
#include
using namespace std;


int main() {
    int n;
    vector primer;
    int sum = 0;
    int count = 0; //  perfect number
    vector isPrime;
    while (cin >> n) {
        if (n >= 1 && n <= 500000) {
            for (int i = 1; i <= n; i++) {
                for (int j = 1; j <= i; j++) {
                    if (i % j == 0) {
                        primer.push_back(j);
                    }
                }
                int len = primer.size();
                for (int k = 0; k < len; k++)
                    sum += primer[k];
              //  cout<

你可能感兴趣的:(牛客网华为机试,c++)