C语言求完数(完全数)(详解版)

文章推薦指數: 80 %
投票人數:10人

问题描述求某一范围内完数的个数。

如果一个数等于它的因子之和,则称该数为完数(或完全数)。

例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。

问题分析根据完数的 ... 首页 教程 VIP会员 一对一答疑 辅导班 首页 C语言教程 C++教程 Python教程 Java教程 Linux入门 更多>> 目录 C语言编程实例 1 C语言三个数从小到大排序/输出 2 C语言猴子吃桃问题 3 百钱买百鸡 4 C语言渔夫打鱼晒网问题 5 C语言希尔排序算法 6 C语言冒泡排序算法 7 C语言直接插入排序算法 8 C语言快速排序算法 9 C语言选择排序算法 10 C语言归并排序算法 11 C语言二分查找算法,折半查找算法 12 C语言分块查找算法,索引顺序查找算法 13 C语言求n的阶乘(n!) 14 C语言判断三角形的类型 15 C语言水仙花数,阿姆斯特朗数 16 C语言最大公约数和最小公倍数 17 C语言求自然底数e 18 C语言小写字母转换成大写字母 19 C语言求回文素数 20 C语言判断年份是否为闰年 21 C语言矩阵转置 22 C语言兔子生兔子问题 23 C语言狼追兔子问题 24 C语言谁家孩子跑得最慢 25 C语言获取矩阵的最大值及其下标 26 C语言统计单词个数 27 C语言字符串加密和解密算法 28 C语言输出等腰三角形 29 C语言约瑟夫环问题 30 C语言整数逆序输出 31 C语言三色旗问题 32 C语言求定积分 33 C语言求空间两点之间的距离 34 C语言日期处理函数 35 C语言汉诺塔问题 36 C语言九九乘法表 37 C语言杨辉三角 38 C语言求圆周率π 39 C语言判断素数(求素数) 40 C语言输出菱形 41 C语言百钱买百鸡问题 42 C语言求完数(完全数) 43 C语言求亲密数 44 C语言求自守数 45 C语言水仙花数 46 C语言求回文数 47 C语言求勾股数 48 C语言求最大公约数 49 C语言求最小公倍数 首页>C语言入门 阅读:137,406 C语言求完数(完全数)(详解版) 问题描述 求某一范围内完数的个数。

如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。

例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。

问题分析 根据完数的定义,解决本题的关键是计算出所选取的整数i(i的取值范围不固定)的因子(因子就是所有可以整除这个数的数),将各因子累加到变量s(记录所有因子之和),若s等于i,则可确认i为完数,反之则不是完数。

算法设计 对于这类求某一范围(由于本题范围不固定,在编程过程中采用键盘输入的方式)内满足条件的数时,一般釆用遍历的方式,对给定范围内的数值一个一个地去判断是否满足条件,这一过程可利用循环来实现。

本题的关键是求出选取数值i的因子,即从1到i-1范围内能整除i的数,看某一个数j是否为i的因子,可利用语句if(i%j==0)进行判断,求某一个数的所有因子,需要在1到i-1范围内进行遍历,同样釆用循环实现。

因此,本题从整体上看可利用两层循环来实现。

外层循环控制该数的范围2〜n;内层循环j控制除数的范围为1〜i,通过i对j取余,是否等于0,找到该数的各个因子。

另外应注意每次判断下一个选定数之前,必须将变量s的值重新置为0,编程过程中一定要注意变量s重新置0的位置。

程序流程图: 下面是完整的代码: #include intmain() { inti,j,s,n;/*变量i控制选定数范围,j控制除数范围,s记录累加因子之和*/ printf("请输入所选范围上限:"); scanf("%d",&n);/*n的值由键盘输入*/ for(i=2;i<=n;i++) { s=0;/*保证每次循环时s的初值为0*/ for(j=1;j> intmain() { //... for(i=2;i<=1000;i++) { s=0; for(j=1;j<=n/2;j++) { if(i%j==0) s+=j; } //... } } 关注微信公众号「站长严长生」,在手机上阅读所有教程,随时随地都能学习。

本公众号由C语言中文网站长运营,每日更新,坚持原创,敢说真话,凡事有态度。

微信扫描二维码关注公众号 优秀文章 C语言变长数组:使用变量指明数组的长度 LinuxLiveCD:从CD光盘运行Linux DockerStack命令 迪杰斯特拉算法求最短路径(C语言详解版) Spring事务管理接口:PlatformTransactionManager、TransactionDefinition和TransactionStatus Redis是什么?它的优点有哪些? SpringBoot微服务的监控与运维 SpringWeb标签:定义下拉选择框或列表框的多个选项 SpringCloudZuul网关的介绍及使用 优先使用函数对象自定义STL算法规则 精美而实用的网站,分享优质编程教程,帮助有志青年。

千锤百炼,只为大作;精益求精,处处斟酌;这种教程,看一眼就倾心。

关于网站| 关于站长| 如何完成一部教程| 联系我们| 网站地图 Copyright©2012-2021biancheng.net,陕ICP备15000209号 ↑



請為這篇文章評分?