编程题——完全数计算
编程题——完全数计算
题目描述:
完全数(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;
}
程序运行结果如下:
编程题——完全数计算相关推荐
- 中国电子学会青少年编程能力等级测试图形化四级编程题:计算生肖
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 我们将有关编程题目的教学视频已经发布到抖 ...
- 《网易编程题》计算糖果
题目描述 A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息: A - B, B - C, A + B, B + C. 这四个数值.每个 ...
- java计算加班费的程序代码_17.编程题:计算加班费、卖东西、日期提取、线程、数字、网络、数据库...
计算加班费 加班10小时以下加班费是时薪的1.5倍.加班10小时或以上,按4元/时算.提示:(一个月工作26天,一天正常工作8小时) 计算1000月薪,加班9小时的加班费 计算2500月薪,加班11小 ...
- 某校2019专硕编程题-完全数
题目 一个数如果恰好等于它的因子之和,这个数被称为"完全数". 例如6的因子为1,2,3 而6 = 1+2+3.编写程序找出1000内的所有完全数,并按照以下格式输出:6 its ...
- SDUT实验七编程题7-4 计算圆柱体的体积
输入圆柱的高和半径,求圆柱体积,volume=π×r2×h .要求定义和调用函数cylinder (r, h )计算圆柱体的体积. 输入格式: 输入在一行中给出2个实数,分别为半径r和高h. 输出格式 ...
- POJ C++程序设计 编程题#4:计算整数平方和
编程题#4:计算整数平方和 来源: 北京大学在线程序评测系统POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 总时间限制: 1000ms 内存限制: 102 ...
- 编程题【System类】计算一千万个数添加到集合的时间
import java.util.ArrayList;/*** ## 编程题[System类]* <p>* 请定义一个集合,并将1至1千万这1千万个数字添加到集合中* ,计算这个行为运行的 ...
- 编程题【Math类】计算类
/*** ## 编程题[Math类]* 参考API文档完成下面需求:* 编程进行以下运算:* 请计算3的5次幂* 请计算3.2向上取整的结果* 请计算3.8向下取整的结果* 请计算5.6四舍五入取整的 ...
- python编程工时计算_Python编程题:两个日期间的天数统计(附代码)
编程题一:计算两个日期之间的天数 题目如下: 题目一 解题思路: 将两个日期格式化成time模块中的标准时间结构struct_time,缺少值用0补齐利用time模块函数分别计算两个日期到时间戳(指格 ...
最新文章
- Python实战之logging模块使用详解
- 在备份流程中使用date
- 【oracle】复合数据类型
- leetcode算法题--骑士拨号器
- [常见错误]Python.h: No such file or directory
- matlab对一行矩阵fft,MATLAB?fft命令
- x264_param_default
- POJ1151-Atlantis【线段树,扫描线,离散化】
- mysql path密码忘记_mysql密码忘记
- Asp2.0下Login.Aspx页面和VS2005登陆控件冲突问题!
- 如何将cad格式转化为qt可以识别的图像_看BIM技术如何计算土方工程量
- linux命令last格式,Linux last和lastlog命令:查看过去登陆的用户信息
- 心理测试软件需求分析报告,大学生心理测试软件心理测评档案管理系统
- SQL Server中查询累计和与滑动平均值
- latex排版--插入符号数学公式常见问题
- 为什么用交叉线而不是直通线连接相同的设备
- 0x80073712_win10更新失败出现错误代码0x80073712如何解决
- SQL 分析大盘走势
- 微信小程序实现酒店入住时间区间选择日历
- Python利用经纬度创建shpfile点图层并生成tif