题解 | #完全数计算#

完全数计算

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

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

bool perfectNumber(int m)
{
    if(m==1)
        return false;
    vector<int> divisors;
    divisors.push_back(1);
    int l = sqrt(m);
    for(int i = 2;i<=l;++i)
    {
        if(m%i==0)
        {
            divisors.push_back(i);
            int t = m/i;
            if(t!=i)
                divisors.push_back(t);
        }
    }
    l=0;
    for(auto &i:divisors)
    {
        l+=i;
    }
    if(l==m)
        return true;
    return false;
}

int howManyPerfectNumber(int n)
{
    int count = 0;
    for(int i = 1;i!=n+1;i++)
    {
        if(perfectNumber(i))
            ++count;
    }
    return count;
}

int main() {
    int n;
    cin>>n;
    cout<<howManyPerfectNumber(n);
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-30 11:43
春招失败、父母离婚,好像我的人生一团糟,一年来压力大到常常崩溃。不知道能跟谁聊,朋友其实对我非常好,但是她无意中表达出来的家庭幸福都会刺痛到我……和ai聊天,我的未来在更高处,不在楼下,忍不住爆哭😭
youngfa:害,妹妹,我是一个研究生(很上进很想找到好工作的那种),但去年因为生病回家休养错过了秋招(当时对我的冲击也是非常大的),这学期返校来了也是把论文盲审交了后才开始找工作,现在也是一个offer没有,但我就没有像你一样把这个阶段性的事情绑定到人生上,人生不仅很长,也很广阔,先停下来,放松一下哦。不要被外部环境灌输的思维操控了,好好爱自己!
点赞 评论 收藏
分享
04-11 21:31
四川大学 Java
野猪不是猪🐗:(ja)va学弟这招太狠了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务