找完数 ,格式为“完数 = 因子1 + 因子2 + ... + 因子k”
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
输入样例:
2 30
输出样例:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
#include<stdio.h> int main() {int n, m, i, j, k, sum = 0;int N = 1; //用于判断m-n之间是否有完数int flag = 0; //判断是否是完数scanf("%d %d", &m, &n);for (i = m;i <= n;i++) //m到n之间找完数{flag = 0;sum = 0;for (j = 1;j <= i / 2;j++) //循环次数不会超过完数的一半,最大的因子数是完数的一半{if (i % j == 0)sum += j;}if (sum == i) //是完数flag = 1;if (flag) //进行输出{N = 0;printf("%d = 1 ", i); //完数和第一项因子1for (k = 2;k <= i / 2;k++) //第一项因子已经拿出来,k这里取2开始{if (i % k == 0){printf("+ %d ", k);}}printf("\n");}}if (N) //m-n之间没有完数 {printf("None\n");}return 0; }
要注意的是输出样式的格式“完数 = 因子1 + 因子2 + ... + 因子k”,怎么表示出来。
找完数 ,格式为“完数 = 因子1 + 因子2 + ... + 因子k”相关推荐
- 编程找出1000以内的完数,完数是指一个数等于其他因子的和;并输出完数和它的因子;
#include <iostream> using namespace std; int main() { int i,j; int sum; for(i=2;i ...
- c语言---编写程序找出1000以内的完数
所谓完数:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如:6的因子为1,2,3,而6=1+2+3,因此6是"完数".编程序找出1000以内的所有完数 ...
- C++实现 找出10000以内的完数
C++实现 找出10000以内的完数 #include <stdio.h> int main(){int n; // 用户输入的整数int i; // 循环标志printf("输 ...
- 【C语言】创建一个函数,判断某一正整数是否为完数,并调用这个函数找出1000以内所有完数...
什么是完数? 如果一个数等于它的因子之和,则称该数为"完数"(或"完全数"). 例如,6的因子为1.2.3,而 6=1+2+3,因此6是"完数&quo ...
- 编写一个判断完数的函数。完数是指一个数恰好等于它的因子之和,如6=1+2+3,6就是完数。
编写一个判断完数的函数.完数是指一个数恰好等于它的因子之和,如6=1+2+3,6就是完数. 程序之美 编写一个判断完数的函数.完数是指一个数恰好等于它的因子之和,如6=1+2+3,6就是完数. #in ...
- 2021-04-09编程求1000以内的所有“完数”。所谓“完数”是指一个数恰好等于它的因子之和。例如,6是完数,因为6=1+2+3
编程求1000以内的所有"完数".所谓"完数"是指一个数恰好等于它的因子之和.例如,6是完数,因为6=1+2+3 #include"stdio.h&q ...
- 一个数如果刚好与它所有的真因子之和相等,则称该数为一个“完数
一个数如果刚好与它所有的真因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数.求2到m之间有多少个完数(m的值由键盘输入). 输入输出格式示例: 输入:50 ...
- 有一堆棋子,两枚两枚的数,最后余1枚,3枚3枚的数,最后余2枚,5枚5枚的数,最后余4枚,6枚6枚的数,最后余5枚,只有7枚7枚的数,正好可以数完。编程求出这堆棋子最少有多少枚棋子?
有一堆棋子,两枚两枚的数,最后余1枚,3枚3枚的数,最后余2枚,5枚5枚的数,最后余4枚,6枚6枚的数,最后余5枚,只有7枚7枚的数,正好可以数完.编程求出这堆棋子最少有多少枚棋子? # includ ...
- C语言找出1 99间全部同构数,07、找出1-99之间的同构数
找出1-99之间的同构数 找出1-99之间的同构数 程序代码如下: /* 2017年3月12日12:58:35 功能;找出1-99之间的同构数 */ #include"stdio.h&quo ...
最新文章
- 2021-08-27 思考:1000瓶药水,1瓶有毒,老鼠毒发24h,如何用最少的老鼠在24h内找出毒药?
- WIN7建立网络映射磁盘
- 17. 电话号码的字母组合(回溯算法)
- 五、案例-指令参考-freemarker指令、表达式
- ASP.NET操作DataTable各种方法总结(给Datatable添加行列、DataTable选择排序等)
- HeadFirstJava——14_数据结构
- 教学网站毕业设计源码【演示视频】
- PHP沉思录(转载)
- 基于 EMD 和小波包的降噪方法研究
- 平面三角形外心坐标推导
- 计算机会计信息系统中凭证日期应该是,《电算化会计》期中考试试题.doc
- Repoptimizer论文理解与代码分析
- Web网页设计——“说旅游”
- Vue-Cli 3.0 + vue.config.js
- QT窗口:透明与半透明、不规则异形窗口、控件透明与半透明、不规则异形按钮
- 看懂了再说自己是程序员哈哈
- 【测试工具】一、手把手教会jmeter流程测试与性能测试
- 一起自学SLAM算法:3.4 图像特征点提取
- c语言电子地图程序,地图四色着图的C语言实现
- 那些可能被你忽略的Mac系统自带工具
热门文章
- 租房系统源码(仅供参考)
- Linux删除特殊名称文件或文件夹
- python判断是否包含某数字_python如何判断数组里是否有某个数字
- 抖音小程序创建广告位
- 基于linux下的shell脚本的编写
- ARM SMMU的原理与IOMMU[转载]
- win2008系统 安装hplaserj1010打印机驱动程序
- @mentions for Users with ActionText; 使用Tribute.js库
- 微信小程序绘制二维码
- android 自定义热点区,Android 自定义View之中国地图热点区域分布