如果整数A的全部因子(包括1不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A则将整数A和B称为亲密数。求3000以内的全部亲密数
根据问题描述,该问题可以转化为:给定整数A判断A是否有亲密数。
为解决该问题首先定义变量a,并为其赋初值为某个整数则按照亲密数定义,要判断a中存放的整数是否有亲密数只要计算出该整数的全部因子的累加和,并将该累加和存放到另一个变量b中此时b中存放的也是一个整數。再计算b中存放整数的全部因子的累加和将该累加和存放到变量n中。
若n等于a则可判定变量a和b中所存放的整数是亲密数
计算数A的各因孓的算法:用A依次对i(i的范围可以是1?A-1、1?(A/2-1)中之一) 进行模(“%”,在编程过程中一定注意求模符号两边参加运算的数据必须为整数)运算若模运算结果等于0,则i为A的一个因子加;否则i就不是A的因子将所求得的因子累到变量B。
接下来求变量B的因子:算法同上将B的洇子之和累加到变量n。根据亲密数的定义判断变量n是否等于变量A(if(n==a))若相等,则A和B是一对亲密数反之则不是。
C语言自学网 站长语录
C语言自學网欢迎各位来访!这是我的QQ,扫一扫加好友。大家一起交流C语言知识分享实战经验!