第39讲 项目1 完数和亲密数
来源:互联网 发布:淘宝流量闭环什么意思 编辑:程序博客网 时间:2024/05/16 10:55
任务和代码
</pre><pre name="code" class="cpp">/**Copyright (c)2016,CSDN学院 | C语言及程序设计初步*All rights reserved.*文件名称:p39-1.c*作 者:管运煌*完成日期:2016年6月12日*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3,再如8的因子和是7(即1+2+4),8不是完数。(1)输入一个数n,判断n是否是完数(2)输出1000以内的所有完数(3)亲密数:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。(提示:按照亲密数定义,要判断数a是否有亲密数,只要计算出a的全部因子的累加和为b,再计算b的全部因子的累加和为n,若n等于a则可判定a和b是亲密数。)*/#include <stdio.h>int main(){int i,m,k; int sum=0; printf ("请输入一个整数:\n"); scanf ("%d",&m); k=m/2; for (i=1;i<=k;i++) {if (m%i==0){sum+=i; } } if (sum==m)printf ("%d是完数!\n",m);else printf ("%d不是完数",m);return 0;}
/**Copyright (c)2016,CSDN学院 | C语言及程序设计初步*All rights reserved.*文件名称:p39-1.c*作 者:管运煌*完成日期:2016年6月12日*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3,再如8的因子和是7(即1+2+4),8不是完数。 输出1000以内的所有完数*/#include <stdio.h>int main(){int i,j,m,sum;//i为1000以内的数计数,j为因子,m用来缩小计算范围,sum为各因子之和。 int k=0;//用来计算完数输出次数。 for (i=6;i<=1000;i++) { sum=0;m=i/2;//一个数的因子肯定小于或等于该数的一半。for (j=1;j<=m;j++){if (i%j==0)sum+=j;//将每次循环i的因子和相加。}if (sum==i)//判断因子之和是否与该数相等。{printf ("%d ",i);k++;if (k%5==0)//每输出五个完数换行。{printf ("\n"); } } } return 0;}
/**Copyright (c)2016,CSDN学院 | C语言及程序设计初步*All rights reserved.*文件名称:p39-1.c*作 者:管运煌*完成日期:2016年6月12日*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3,再如8的因子和是7(即1+2+4),8不是完数。亲密数:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。(提示:按照亲密数定义,要判断数a是否有亲密数,只要计算出a的全部因子的累加和为b,再计算b的全部因子的累加和为n,若n等于a则可判定a和b是亲密数。)*/#include <stdio.h>int main(){int A,j,l;//定义A为A数,j为A数因子,l为A数因子之和sum的因子。 int sum=0; int n;//n为sum的因子之和。 for (A=1;A<=30000;A++) {sum=0;//A数每次循环时,sum的值都需要初始化,下n同。for (j=1;j<A;j++)//因为A和n要参与最后的条件判断,所以不能用除于2的特性来缩小范围。{if (A%j==0){sum+=j;//求出A数的因子之和sum。 }}n=0;for (l=1,n=0;l<sum;l++){if (sum%l==0){n+=l;//求出sum的因子之和n。 }}if (n==A)//完数也符合条件,可以选择是否筛选。{if (A==sum){printf ("%d和%d是完数!\n",A,sum); }else{printf ("%d和%d是亲密数!\n",A,sum); } }} return 0;}运行结果
知识点总结
循环语句嵌套
心得和体会
说多了都是泪,第二小题因为最后一个分行的if语句层级弄错折磨了我几个小时,codeblocks还是没法单步执行,只能用printf 在每个大小循环中加入变量输出,看看哪里出错了……第三题sum和n变量一开始是习惯性在循环之前初始化的,但我没注意到其实每个循环的时候sum 和 n 的值都需要初始化……so,又是苦逼好久才找出来……总之,我想以后在语句层级关系和变量定义方面肯定会注意了。
0 0
- 第39讲 项目1 完数和亲密数
- 第39讲-项目一-完数
- 第39讲-项目三-反序数
- 第39讲-项目四-回文数
- 第三十九讲项目1.3——亲密数
- 第39讲项目1——完数(1)
- 第39讲项目1——完数(2)
- 项目39.1-3 亲密数
- 第39讲项目3——反序数
- 第39讲项目4——回文数
- 第11讲 项目1-分离各位数
- 第11讲项目1——分离各位数
- 第11讲项目1-分离各位数
- 第7讲项目1-分离各位数
- 第40讲--项目二--水仙花数
- 亲密数
- 亲密数
- 亲密数
- ReactNative 安装步骤
- 82. Remove Duplicates from Sorted List II
- leetcode triangle
- HDU 4630 线段树+离线处理
- 使用Viewpager时,support.v4找不到,class not found异常解决方法
- 第39讲 项目1 完数和亲密数
- Oracle计算时间差函数
- ReflectUitls类的编写和对反射机制的解析
- iOS8新特性Self Sizing Cells,使用estimatedRowHeight自适应cell
- OpenCV学习笔记(一):读取、显示、保存图片
- 学习WCF之路7:实例
- Spark 获取jdbc Rdd
- vs中出现error LNK2038 RuntimeLibrary 不匹配的解决
- <meta http-equiv="X-UA-Compatible" content="IE=Edge">