一道定义函数C程序题目
若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.例如,6的因子之和为1+2+3=6,因此6与6为一对亲密数(即6自身构成一对亲密数);又如,220的因子之和为l+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为1+2+4+71+142=220,因此,220与284为一对亲密数.编写程序,求500以内的所有亲密数对,如下图所示.
6--6
28--28
220--284
496--496
要求:
1、定义函数int sumfact(int n),该函数的功能是返回参数n的因子的和
2、在主函数中调用sumfact函数,输出500以内的亲密数
3、分别划出main函数和sumfact函数的流程图
我的编程写成:
#include
int sumfact(int n);
main(){
int i=1,j=1;
printf("亲密数对:\n");
for(i=1;i
人气:282 ℃ 时间:2020-09-08 22:13:46
解答
有一个方法能简单的解决这个问题,按照题目的意思,亲密数可以说就两种情况,
第一种是两个数相同的,如:6--6,28--28
第二种是前一个数大,后一个数小:如220--284
你会说还一种情况,前一个数小,后一个数大,这种情况必然是和第二种情况重复的,仔细想想就明白了,所以加一个if判断就行:(只有在第一个数小于或者等于第二个数的情况才输出)
if(sumfact(i)==j&&sumfact(j)==i)
{
if(i
推荐
- 以下叙述中正确的是( )A构成C程序的基本单位是函数 B 可以在一个函数中定义另一个函数C main ()
- the grass is eaten to less than five centimeters.to在这里是什么意思,
- 1、甲、乙、丙3位同学到办公室找老师当面批改作业.老师批改他们作业的时间分别是2分钟、1分钟、3分钟.按什么顺序批改,他们等候时间的总和最少?等候时间的总和最少是多少分钟?
- 已知一个正方形的边长增加3,则其面积增加39,请你设计一种方案,使该图形的各角和周长保持不变,而面积减少4
- 光折射成像位置在哪?反向延长线的交点是在物体上方?如果是一个点的话,
- 遥控车天线坏了,必须把遥控器天线与遥控车天线对接在一起,遥控车才可以跑,请问用什么办法可以解决天线
- 原计划18个人植树,按计划工作了2小时后,有3个人被抽走了,于是剩下的人每小时比原计划多种1棵树,还是按期完成了任务.原计划每人每小时植多少棵树?
- 英语翻译
猜你喜欢