题目描述:

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: 28
Output: True
Explanation: 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;elsereturn 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;elsereturn false;}

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

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

leetcode-507-Perfect Number相关推荐

  1. Leetcode——507. Perfect Number

    题目原址 https://leetcode.com/problems/perfect-number/description/ 题目描述 We define the Perfect Number is ...

  2. LeetCode 507. Perfect Number

    题目: We define the Perfect Number is a positive integer that is equal to the sum of all its positive ...

  3. 507. Perfect Number

    题目: We define the Perfect Number is a positive integer that is equal to the sum of all its positive  ...

  4. 507. Perfect Number(Python)

    参考:https://www.cnblogs.com/grandyang/p/6636879.html

  5. C#LeetCode刷题之#507-完美数(Perfect Number)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3879 访问. 对于一个 正整数,如果它和除了它自身以外的所有正因 ...

  6. java perfect number_LeetCode算法题-Perfect Number(Java实现)

    这是悦乐书的第249次更新,第262篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第116题(顺位题号是507).我们定义Perfect Number是一个正整数,它等于 ...

  7. LeetCode:Largest Number - 求整型数组中各元素可拼合成的最大数字

    2019独角兽企业重金招聘Python工程师标准>>> 1.题目名称 Largest Number(求整型数组中各元素可拼合成的最大数字) 2.题目地址 https://leetco ...

  8. I00035 完美数(Perfect number)

    笛卡尔说:"能找出的完美数是不会多的,好比人类一样,要找一个完美人亦非易事." 数论中,若一个正整数除了本身之外所有因子之和正好等于此数自身,则称此数为完美数.完美数(Perfec ...

  9. 【整数转字符串】LeetCode 9. Palindrome Number

    LeetCode 9. Palindrome Number Solution1: 不利用字符串 class Solution { public:bool isPalindrome(int x) {if ...

  10. 【To Do! 重点 正则表达式】LeetCode 65. Valid Number

    LeetCode 65. Valid Number 本博客转载自:[1]http://www.cnblogs.com/yuzhangcmu/p/4060348.html [2]https://blog ...

最新文章

  1. 张宏江:人工智能的长远发展需要有人坐冷板凳
  2. 深度学习框架Caffe2并入PyTorch,你的开发效率可能要提升不少
  3. 14种轻量级网络综述 — 主干网络篇
  4. 算法-二叉树的最近公共祖先
  5. 视频和音频播放的演示最简单的例子9:SDL2广播PCM
  6. Pandas缺失数据最快定位方式(极少代码快速实现,打死不用循环!!!!!)
  7. 使用.Net Core实现的一个图形验证码
  8. 软件需求和问题解决-转载
  9. mysql 当前用户连接数,查看mysql当前连接数的方法详解
  10. 打线上包 测试_vue-cli项目分别打测试包(test)和生产包(prod)
  11. leetcode 杨辉三角 III
  12. TensorFlow 的简化接口Scikit Flow
  13. 使用微软原生工具,反编译DLL并修改后再生成DLL
  14. wifi无线设备服务器驱动,如何安装Windows 10的WiFi驱动程序
  15. 一起学习网站开发之基于Spring boot的微信登录开发流程和知识点
  16. css hr标签 各种样式
  17. Android studio 回退按钮显示
  18. 去了字节跳动,才知道年薪 40w 的 90 后 Android 开发者有这么多?
  19. vue + element-ui 对登录功能、重置表单、退出功能、路由重定向、挂载路由导航守卫的实现
  20. 蓝牙HC05模块,AT其他指令爆出ERROR[0] 解决方法

热门文章

  1. jQuery初识 - jQuery是什么
  2. jQuery(三)—— jQuery 事件 / jQuery 拷贝对象 / 多库共存 / jQuery 插件
  3. OpenAL跨平台音效API的安装与移植
  4. 第7章 现代操作系统
  5. 数据反正模拟 matlab,[2018年最新整理]信号处理MATLAB函数.doc
  6. 中国科学院计算机网络信息中心领导,中国科学院计算机网络信息中心
  7. 2021瑞安高考成绩查询,温州教育网官网登录入口2021瑞安中考成绩查询中招查分系统...
  8. 四大组件之Activity
  9. Oracle BI11启动失败
  10. [AHOI2009]维护序列