博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-507-Perfect Number
阅读量:6341 次
发布时间:2019-06-22

本文共 1397 字,大约阅读时间需要 4 分钟。

题目描述:

We define the Perfect Number is a positive integer that is equal to the sum of all its positive divisors except itself.

Now, given an integer n, write a function that returns true when it is a perfect number and false when it is not.

 

Example:

Input: 28Output: TrueExplanation: 28 = 1 + 2 + 4 + 7 + 14

 

Note: The input number n will not exceed 100,000,000. (1e8)

 

要完成的函数:

bool checkPerfectNumber(int num)

 

说明:

1、这道题给定一个数字,判断是不是完全数。完全数的定义是:除了本身之外的所有正因子之和等于这个数本身。

2、因为限制给定数字在一亿以内,并且完全数在一亿以内的,已知的,就只有五个……

所以朋友们都知道要怎么做……

代码如下:

   bool checkPerfectNumber(int num)     {        if(num==6||num==28||num==496||num==8128||num==33550336)            return true;        else            return false;    }

实测6ms,beats 81.37% of cpp submissions。

已知的完全数推导公式由欧拉给出:如果p是质数,且2^p-1也是质数,那么(2^p-1)X2^(p-1)便是一个完全数。

也可以根据这个条件来判断,但是就这道题来说,上述解法是最直接的。

 

3、正常解法:

正常解法肯定是暴力破解啦,找到除了本身的所有正因子,看一下相加之和会不会等于本身。

代码如下:

bool checkPerfectNumber(int num)     {        if(num==1)//num==1为边界条件            return false;        int sum=1;        int up=sqrt(num);        for(int i=2;i<=up;i++)        {            if(num%i==0)            {                sum+=i+(num/i==i?0:num/i);//这一步还要做判断,因为比如49/7=7            }                 //我们这时候只需要加一个因子7        }        if(sum==num)            return true;        else            return false;    }

上述代码实测10ms,beats 16.77% of cpp submissions。

转载于:https://www.cnblogs.com/chenjx85/p/8972053.html

你可能感兴趣的文章
【分享】马化腾:产品设计与用户体验
查看>>
【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练
查看>>
全智慧的网络:思科十年来最具颠覆性的创新
查看>>
怎样将现有应用迁移到 VMware NSX
查看>>
赛门铁克收购以色列移动安全初创公司Skycure 旨在构建网络安全防御平台
查看>>
《Photoshop蒙版与合成(第2版)》目录—导读
查看>>
“最佳人气奖”出炉!4月27号,谁能拿到阿里聚安全算法挑战赛的桂冠?
查看>>
《网页美工设计Photoshop+Flash+Dreamweaver从入门到精通》——2.6 图层与图层样式...
查看>>
《iOS组件与框架——iOS SDK高级特性剖析》——第2章,第2.7节获取线路
查看>>
Spring中 @Autowired标签与 @Resource标签 的区别
查看>>
人工智能凭什么毁灭人类
查看>>
今天的学习
查看>>
面试必问之JVM原理
查看>>
mysql主主同步+Keepalived
查看>>
研究音频编解码要看什么书
查看>>
tomcat远程调试配置
查看>>
QuartZ Cron表达式
查看>>
性能测试工具VTune的功能和用法介绍
查看>>
音频视频组件Audio DJ Studio for .NET更新至v10.0.0.0丨附下载
查看>>
RMAN Complete Recovery
查看>>