如果用暴力法,for(i=2;i<num;++i>) 可以执行成功但会超出时间限制。
改进方法是缩小循环范围,用i平方<=num代替,可以一次同时找到两个约数,大大减少用时。
以测试用例28为例,第一次循环i=2,2的平方小于4,满足循环条件,28%2=0,故满足第一个if语句,2为28的一个约数,将其累加到sum中,同时进行判断2是不是28平方根,显然不是故执行第二个if语句,找到2对应的28另一个约数为14,并累加至sum。
if(i*i!=num)设置的目的是判断循环的i是不是输入数num的平方根,避免累加重复。比如num=16,i=4,第一个if里累加一次4了,若不设置第二个循环还会再加一次4,这样就出错了,约数是没有重复的。
最后再判断累加完毕的数sum和输入的数num是否相同,即判断是不是完数。

class Solution {public:
bool checkPerfectNumber(int num) {if(num<=1){return false;
}
int sum=1;
for(int i=2;ii<=num;++i){if(num%i==0){sum+=i;
if(ii!=num){sum+=num/i;
}
}
}
if(sum==num){return true;
}
return false;
}};

完美数——C++代码及思路分析 leetcode507相关推荐

  1. 卡特兰数 卡塔兰数 概念 代码实现 模型分析全集

    特别鸣谢 参考1 参考2 参考3 概念 情境导入 一个栈(无穷大)的进栈序列为1,2,3,-,n,有多少个不同的出栈序列? 可以形象化地转化为括号问题,更好理解,进栈是(,出栈是),下面为n=3的全部 ...

  2. 第一届华数杯A题思路分析

    ** 华数杯a题浅见 需要本文的话请加2574364134 ** 当我刚拿到这个题目的时候,惊呆了,这个不就是2018年国赛的A题吗?2018年的国赛A题是为了进行高温防护,这道题现在就是低温防护服御 ...

  3. 7-3 接话茬 (100分)(简洁易懂的代码含思路分析)

    7-3 接话茬 (100分) 小CC最喜欢的就是接话茬,别人说一句,小CC就会接着他的话尾巴继续说下去,然后告诉他这是"顶针"修辞手法,活活将人气死.小XX也喜欢接话茬,每天都要与 ...

  4. 猜数字游戏代码+设计思路分析

    #define _CRT_SECURE_NO_WARNINGS 1 # include<stdio.h> #include<Windows.h> #include<tim ...

  5. 质数表因式分解 c语言,素数表+因式分解+完美数

    1 素数 素数即质数,指在大于1的自然数中,除了1和此整数自身外无法被其它自然数整除的数. 1.1 试除法 该方法用于验证一个数是否为素数.例求x是否为素数,只需要验证1到中是否存在一个数位x的约数, ...

  6. 2022华数杯B题论文思路分析+完整代码(水下机器人组装计划)(一二问答案接出来和标准答案一样)(问题三四逼近正确答案)(完整论文,代码可直接跑)

    写在前面:学校最近搞数学建模竞赛培训,以2022华数杯B题作为训练题目,在查资料过程中发现网上没有哪一篇论文解出了正确答案,而我们组利用Lingo软件准确的解出了正确答案,但是在第三问时,由于决策的变 ...

  7. 清华计算几何大作业思路分析和代码实现

    清华计算几何大作业思路分析和代码实现 1. 计算几何之缘 2. 前置知识 3. 作业列表 4. 作业难度分析和选取建议 4.1 初阶(新手村之旅) 4.2 高阶(大师剑之旅) 4.3 终阶(折磨之旅) ...

  8. leetcode507. 完美数

    题目描述 解题思路 执行结果 leetcode . 题目描述 对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」. 给定一个 整数 n, 如果是完美数,返回 tr ...

  9. PTA 电话聊天狂人 思路分析及代码解析

    PTA 电话聊天狂人 思路分析及代码解析v1.0 一.前导 1. 需要掌握的知识 2. 题目信息 二.解题思路分析 1. 题意理解 1. 1 输入数据 1.2 输出数据 2. 思路分析 三.具体实现 ...

  10. PTA 统计工龄 思路分析及代码解析

    PTA 统计工龄 思路分析及代码解析v0.6 一.前导 1. 需要掌握的知识 2. 题目信息 二.解题思路分析 1. 题意理解 1. 1 输入数据 1.2 输出数据 2. 思路分析 三.具体实现 1. ...

最新文章

  1. pthred()多线程计算派
  2. MQTT 5.0 新特性(三)| 有效载荷标识与内容类型
  3. Delphi中拖动无边框窗口的5种方法
  4. 用两个文件a.txt;b.txt.使用linux命令,复制,a.txt文档倒数第十行的记录to b.txt文档
  5. Activity加载View调用顺序
  6. [蓝桥杯2015初赛]手链样式-思维+next_permutation枚举(好题)
  7. C#面试题 之 判断质数
  8. 微信朋友圈删除后可重新编辑了 网友:这有啥用
  9. SpringBoot 工程目录 整合mybatis-neo4j(注解类型)
  10. HDU 3651 A Simple Problem
  11. Eclipse Code Template 设置自动加注释
  12. 自适应漫画手机APP应用下载页源码
  13. C++模板技术实现 泛型编程,通俗易懂的泛型编程教程//。
  14. policy服务器未能登陆,开机出现Group Policy Client服务未能登录的解决措施
  15. Qt High DPI解决方案
  16. 学生评教系统--教师评教
  17. ospfdr选举规则_OSPF的DR选举
  18. vue 手写图片左右跑马灯 效果
  19. i58400升级可以换什么cpu_宝贝标题关键词顺序可以换吗?关键词顺序对标题有什么影响?...
  20. [Vue warn]: Property or method “throttle“ is not defined on the instance but referenced during rende

热门文章

  1. c语言开发宏程序,一文搞懂宏程序的编程基础,快速入门秘笈
  2. HDU 2036 (平面几何 多边形面积)
  3. Python.习题六 字典与集合(下)
  4. 【无标题】报班第一节课
  5. 一行代码安装ROS/ROS2、解决rosdep问题、配置好环境
  6. 路飞学城python电子书闲鱼_路飞学城-python开发集训-第一章之用户登陆做业
  7. 路飞学城Python-Day23
  8. 【测试】使用xtts V4迁移数据
  9. 【Oracle SQL】计算同比与环比(列转行进行偏移)
  10. mysql frm myd myi 恢复_通过*.frm,*.myd,*.myi文件恢复mysql数据库