华为机试 HJ56题解 | #完全数计算#

完全数计算

https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84

#include <iostream>
#include <cmath>
using namespace std;

// 是否是完備數
bool IsWanBeiShu(int num)
{
    bool bResult = false;
    int sum = 0;
    for (int i = 1; i < num; i++) {
        if (num % i == 0) {
            sum += i;
        }
    }
    if (sum == num) {
        bResult = true;
    }
    return bResult;
}

int GetWanBeiShuCount(int n)
{
    int count = 0;
    for (int i = 1; i < n; i++) {
        if (IsWanBeiShu(i)) {
            count++;
        }
    }
    return count;
}

int main() {
    int n;
    int count = 0;
    int sum = 0;
    while (cin >> n) { // 注意 while 处理多个 case
        cout << GetWanBeiShuCount(n) << endl;
    }
}

全部评论

相关推荐

05-07 19:10
已编辑
中国科学技术大学 C++
silly01:现在先去 momenta,8-9月去鹅找日常实习,八股文算法背好了你这随便进。不过建议补充一下后端知识,MySQL、Redis看下八股,再补个6824,加点go后台的技术栈,9月随便进大厂。CPP后端只能来WXG
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务