INOC产品部--完全数计算(HJ56)

一:解题思路

二:完整代码示例 (C++版和Java版)

C++代码:

#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>

using namespace std;

int count(int n)
{
    int counts = 0;

    for (int m = 2; m < n; m++)
    {
        vector<int> vec = {};
        int sum = 0;
        for (int i = 1; i < m; i++)
        {
            if (m%i == 0)
            {
                vec.push_back(i);
            }
        }
        sum = accumulate(vec.begin(),vec.end(),0);
        if (sum == m) counts++;
    }

    return counts;
}

int main()
{
    int n = 0;

    while (cin >> n)
    {
        cout << count(n) << endl;
    }

    return 0;
}
posted @ 2020-08-03 20:25  repinkply  阅读(524)  评论(0)    收藏  举报