所谓完数就是该数恰好等于除自身外的因子之和。例如: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”相关推荐

  1. 编程找出1000以内的完数,完数是指一个数等于其他因子的和;并输出完数和它的因子;

    #include <iostream>  using namespace std; int main() {     int i,j;     int sum;     for(i=2;i ...

  2. c语言---编写程序找出1000以内的完数

    所谓完数:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如:6的因子为1,2,3,而6=1+2+3,因此6是"完数".编程序找出1000以内的所有完数 ...

  3. C++实现 找出10000以内的完数

    C++实现 找出10000以内的完数 #include <stdio.h> int main(){int n; // 用户输入的整数int i; // 循环标志printf("输 ...

  4. 【C语言】创建一个函数,判断某一正整数是否为完数,并调用这个函数找出1000以内所有完数...

    什么是完数? 如果一个数等于它的因子之和,则称该数为"完数"(或"完全数"). 例如,6的因子为1.2.3,而 6=1+2+3,因此6是"完数&quo ...

  5. 编写一个判断完数的函数。完数是指一个数恰好等于它的因子之和,如6=1+2+3,6就是完数。

    编写一个判断完数的函数.完数是指一个数恰好等于它的因子之和,如6=1+2+3,6就是完数. 程序之美 编写一个判断完数的函数.完数是指一个数恰好等于它的因子之和,如6=1+2+3,6就是完数. #in ...

  6. 2021-04-09编程求1000以内的所有“完数”。所谓“完数”是指一个数恰好等于它的因子之和。例如,6是完数,因为6=1+2+3

    编程求1000以内的所有"完数".所谓"完数"是指一个数恰好等于它的因子之和.例如,6是完数,因为6=1+2+3 #include"stdio.h&q ...

  7. 一个数如果刚好与它所有的真因子之和相等,则称该数为一个“完数

    一个数如果刚好与它所有的真因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数.求2到m之间有多少个完数(m的值由键盘输入). 输入输出格式示例: 输入:50 ...

  8. 有一堆棋子,两枚两枚的数,最后余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 ...

  9. C语言找出1 99间全部同构数,07、找出1-99之间的同构数

    找出1-99之间的同构数 找出1-99之间的同构数 程序代码如下: /* 2017年3月12日12:58:35 功能;找出1-99之间的同构数 */ #include"stdio.h&quo ...

最新文章

  1. 2021-08-27 思考:1000瓶药水,1瓶有毒,老鼠毒发24h,如何用最少的老鼠在24h内找出毒药?
  2. WIN7建立网络映射磁盘
  3. 17. 电话号码的字母组合(回溯算法)
  4. 五、案例-指令参考-freemarker指令、表达式
  5. ASP.NET操作DataTable各种方法总结(给Datatable添加行列、DataTable选择排序等)
  6. HeadFirstJava——14_数据结构
  7. 教学网站毕业设计源码【演示视频】
  8. PHP沉思录(转载)
  9. 基于 EMD 和小波包的降噪方法研究
  10. 平面三角形外心坐标推导
  11. 计算机会计信息系统中凭证日期应该是,《电算化会计》期中考试试题.doc
  12. Repoptimizer论文理解与代码分析
  13. Web网页设计——“说旅游”
  14. Vue-Cli 3.0 + vue.config.js
  15. QT窗口:透明与半透明、不规则异形窗口、控件透明与半透明、不规则异形按钮
  16. 看懂了再说自己是程序员哈哈
  17. 【测试工具】一、手把手教会jmeter流程测试与性能测试
  18. 一起自学SLAM算法:3.4 图像特征点提取
  19. c语言电子地图程序,地图四色着图的C语言实现
  20. 那些可能被你忽略的Mac系统自带工具

热门文章

  1. 租房系统源码(仅供参考)
  2. Linux删除特殊名称文件或文件夹
  3. python判断是否包含某数字_python如何判断数组里是否有某个数字
  4. 抖音小程序创建广告位
  5. 基于linux下的shell脚本的编写
  6. ARM SMMU的原理与IOMMU[转载]
  7. win2008系统 安装hplaserj1010打印机驱动程序
  8. @mentions for Users with ActionText; 使用Tribute.js库
  9. 微信小程序绘制二维码
  10. android 自定义热点区,Android 自定义View之中国地图热点区域分布