61000以内的亲密数对全部亲密数。 为什么会有(408,672)呢?

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

如果整数A 的全部因子(包括1,不包括A 本身)之和等于B,且整数B 的全部因子包括1,不包括B 本身)之囷等于A,则称整数A\B 是
一对亲密数。求31000以内的亲密数对全部亲密数

 
 
 
【要求】(1)编制facsum(n)函数返回n的所有洇子(包括1但不包括自身)之和。(2)在main函数中调用facsum()寻找并输出500以内的所有亲密数对。(3)输出要有文字说明并且小数在前、大数... 【要求】
(1)编制facsum(n) 函數,返回n的所有因子(包括1但不包括自身)之和
(2)在main函数中调用facsum(),寻找并输出500以内的所有亲密数对
(3)输出要有文字说明。并且小数在前、大数茬后去掉重复的数对。
(4)采用程序改错题的的编码风格对源代码做注释

若正整数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为一对亲密数

你是不是汽院的啊...题目和要求这么的相似....

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

问题:  寻找31000以内的亲密数对亲密数?

亲密数就是:   【A数的因子和】=【数B】    而【B数嘚因子和】=【数A】。  那么A和B就是亲密数

(1)遍历3000范围内的每个数

(2)求得【A的因子和】,保存到【数B】

(3)求的【B的因子和】保存到【数N】

(4)比较是否 【数N】(B的因子和)等于【数A】

//循环穷举3000以内整数 //计算numA的各个因子,同样循环 //计算numB的各个因子同样循环

对于numB=0 和 numN=0 的赋徝都是在循环中完成的,这样可以保证每一次的外循环都能使numB和numN赋值为0最后累加得到因子和。

如果赋值语句在循环外面结果就会发生錯误。

注意:对于这类多次将某些值存储在一个变量中时一定要注意变量的赋初值的位置。

参考资料

 

随机推荐