编程题——完全数计算


题目描述:
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

给定函数count(int n),用于计算n以内(含n)完全数的个数。计算范围, 0 < n <= 500000

返回n以内完全数的个数。 异常情况返回-1

/**

  • 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

  • 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

  • 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

  • 给定函数count(int n),用于计算n以内(含n)完全数的个数

  • @param n 计算范围, 0 < n <= 500000

  • @return n 以内完全数的个数, 异常情况返回-1

*/

输入描述:
输入一个数字

输出描述:
输出完全数的个数

示例:
输入
1000
输出
3


程序代码如下:



#include <iostream>
#include <algorithm>
using namespace std;/*遍历每一个数,求其约数和,可用sqrt缩小范围*/
bool IsPerfect(int num)
{int sum = 1;for (int i = 2; i < sqrt(num); ++i){if (num%i == 0){sum += i;if (num / i != i) //表示不是平方,所以两个约数都要加sum += num / i;}}if (num == sum)return true;elsereturn false;
}int main()
{int n;while (cin >> n){int count = 0;if (n<0 || n>500000) //异常情况返回-1return -1;else{for (int i = 2; i < n; ++i){if (IsPerfect(i))++count;}cout << count << endl;}}return 0;
}

程序运行结果如下:


编程题——完全数计算相关推荐

  1. 中国电子学会青少年编程能力等级测试图形化四级编程题:计算生肖

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 我们将有关编程题目的教学视频已经发布到抖 ...

  2. 《网易编程题》计算糖果

    题目描述 A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息: A - B, B - C, A + B, B + C. 这四个数值.每个 ...

  3. java计算加班费的程序代码_17.编程题:计算加班费、卖东西、日期提取、线程、数字、网络、数据库...

    计算加班费 加班10小时以下加班费是时薪的1.5倍.加班10小时或以上,按4元/时算.提示:(一个月工作26天,一天正常工作8小时) 计算1000月薪,加班9小时的加班费 计算2500月薪,加班11小 ...

  4. 某校2019专硕编程题-完全数

    题目 一个数如果恰好等于它的因子之和,这个数被称为"完全数". 例如6的因子为1,2,3 而6 = 1+2+3.编写程序找出1000内的所有完全数,并按照以下格式输出:6 its ...

  5. SDUT实验七编程题7-4 计算圆柱体的体积

    输入圆柱的高和半径,求圆柱体积,volume=π×r2×h .要求定义和调用函数cylinder (r, h )计算圆柱体的体积. 输入格式: 输入在一行中给出2个实数,分别为半径r和高h. 输出格式 ...

  6. POJ C++程序设计 编程题#4:计算整数平方和

    编程题#4:计算整数平方和 来源: 北京大学在线程序评测系统POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 总时间限制: 1000ms 内存限制: 102 ...

  7. 编程题【System类】计算一千万个数添加到集合的时间

    import java.util.ArrayList;/*** ## 编程题[System类]* <p>* 请定义一个集合,并将1至1千万这1千万个数字添加到集合中* ,计算这个行为运行的 ...

  8. 编程题【Math类】计算类

    /*** ## 编程题[Math类]* 参考API文档完成下面需求:* 编程进行以下运算:* 请计算3的5次幂* 请计算3.2向上取整的结果* 请计算3.8向下取整的结果* 请计算5.6四舍五入取整的 ...

  9. python编程工时计算_Python编程题:两个日期间的天数统计(附代码)

    编程题一:计算两个日期之间的天数 题目如下: 题目一 解题思路: 将两个日期格式化成time模块中的标准时间结构struct_time,缺少值用0补齐利用time模块函数分别计算两个日期到时间戳(指格 ...

最新文章

  1. Python实战之logging模块使用详解
  2. 在备份流程中使用date
  3. 【oracle】复合数据类型
  4. leetcode算法题--骑士拨号器
  5. [常见错误]Python.h: No such file or directory
  6. matlab对一行矩阵fft,MATLAB?fft命令
  7. x264_param_default
  8. POJ1151-Atlantis【线段树,扫描线,离散化】
  9. mysql path密码忘记_mysql密码忘记
  10. Asp2.0下Login.Aspx页面和VS2005登陆控件冲突问题!
  11. 如何将cad格式转化为qt可以识别的图像_看BIM技术如何计算土方工程量
  12. linux命令last格式,Linux last和lastlog命令:查看过去登陆的用户信息
  13. 心理测试软件需求分析报告,大学生心理测试软件心理测评档案管理系统
  14. SQL Server中查询累计和与滑动平均值
  15. latex排版--插入符号数学公式常见问题
  16. 为什么用交叉线而不是直通线连接相同的设备
  17. 0x80073712_win10更新失败出现错误代码0x80073712如何解决
  18. SQL 分析大盘走势
  19. 微信小程序实现酒店入住时间区间选择日历
  20. Python利用经纬度创建shpfile点图层并生成tif

热门文章

  1. Spark—RDD依赖血缘关系
  2. Mysql中if-else的使用
  3. USACO:1.3.6 Ski Course Design(滑雪场设计)
  4. Three光线投射实例
  5. 【REVIT二次开发教程】01-“你好,Revit”
  6. ITN网络课程笔记(三)
  7. 常用的密码算法有哪些?
  8. 阿里云Ubuntu 16.04安装图形界面及远程控制
  9. 外汇交易中的货币相关性
  10. 光流法optical flow