题解 | #完数VS盈数#

完数VS盈数

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

#include <bits/stdc++.h>
using namespace std;

vector<int> getFactor(int n){
    vector<int>v;
    for(int i =1;i<n;i++){
        if(n%i == 0 )
            v.push_back(i);
    }
    return v;
}

string wanYin(int n){
    vector<int>v = getFactor(n);
    //对因子求和
    int sum=0;
    for(auto a:v)sum+=a;
    if(n == sum)return "wan";
    if(n<sum)return "yin";
    return "NO";
}

int main() {
    vector<int>E,G;
    for(int i =2;i<=60;i++){
        if(wanYin(i) == "wan"){
            E.push_back(i);
        }else if(wanYin(i) == "yin"){
            G.push_back(i);
        }
    }

    cout<<"E: ";
    for(int i =0;i<E.size();i++){
        if(i<E.size()-1)cout<<E[i]<<" ";
        if(i==E.size()-1)cout<<E[i];
    }
    cout<<endl<<"G: ";
    for(int i =0;i<G.size();i++){
        if(i<G.size()-1)cout<<G[i]<<" ";
        if(i==G.size()-1)cout<<G[i];
    }
    // cout<<endl;
    // printf("E: 6 28\nG: 12 18 20 24 30 36 40 42 48 54 56 60");
}
// 64 位输出请用 printf("%lld")

哦牛批,别点自测,直接输出就行了

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务