题解 | #完数VS盈数#

完数VS盈数

https://www.nowcoder.com/practice/ccc3d1e78014486fb7eed3c50e05c99d

/*
描述
一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1。
 则称其为“完数”;若因子之和大于该数,则称其为“盈数”。
 求出2到60之间所有“完数”和“盈数”。
输入描述:
题目没有任何输入。
输出描述:
输出2到60之间所有“完数”和“盈数”,
 并以如下形式输出: E: e1 e2 e3 ......(ei为完数) G: g1 g2 g3 ......(gi为盈数) 其中两个数之间要有空格,行尾不加空格。

 */

#include "vector"
#include "cstdio"

using namespace std;

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

int main() {
    vector<int> vecE;
    vector<int> vecG;

    for (int i = 2; i < 61; ++i) {
        int sum = sum2(i);
        if (i == sum) {
            vecE.push_back(i);
        } else if (i < sum) {
            vecG.push_back(i);
        }
    }

    printf("E:");
    for (int i = 0; i < vecE.size(); ++i) {
        printf(" %d", vecE[i]);
    }
    printf("\n");

    printf("G:");
    for (int i = 0; i < vecG.size(); ++i) {
        printf(" %d", vecG[i]);
    }
    printf("\n");

    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-18 18:23
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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