完数VS盈数

完数VS盈数

http://www.nowcoder.com/questionTerminal/ccc3d1e78014486fb7eed3c50e05c99d

思路

求出 2 到 60 之间数字的因子之和,然后进行比较,判断出是完数还是盈数,并用两个数组分别去存储。

#include<iostream>
#include<vector>

using namespace std;

int judge(int num){
    int sum = 0;
    for(int i = 1; i < num; i ++){
        if(num % i == 0)
            sum += i;
    }
    if(sum == num) return 1;
    if(sum > num) return 0;
    return -1;
}

int main(){
    vector<int> e, g;
    for(int i = 2; i <= 60; i ++){
        if(judge(i) == 1) e.push_back(i);
        else if(judge(i) == 0) g.push_back(i);
    }
    cout << "E:";
    for(int i : e) cout << " " << i;
    cout << endl;
    cout << "G:";
    for(int i : g) cout << " " << i;
    return 0;
}
算法题解 文章被收录于专栏

不定期更新一些算法题解,有什么问题可以随时留言~

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:05
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 13:54
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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