亲和数
来源:互联网 发布:淘宝号怎么快速升3心 编辑:程序博客网 时间:2024/05/19 12:12
如果两个数a和b,a的所有真因数之和等于b,b的所有真因数之和等于a,则称a,b是一对亲和数。
例如220和284,1184和1210,2620和2924。 分析: 首先得明确到底是什么是亲和数? 亲和数问题最早是由毕达哥拉斯学派发现和研究的。
他们在研究数字的规律的时候发现有以下性质特点的两个数:
220的真因子是:1、2、4、5、10、11、20、22、44、55、110;
284的真因子是:1、2、4、71、142。
而这两个数恰恰等于对方的真因子各自加起来的和(sum[i]表示数i 的各个真因子的和),即 220=1+2+4+71+142=sum[284], 284=1+2+4+5+10+11+20+22+44+55+110=sum[220]。
实现代码如下:
int aNear[50010];for(int n=1;n<50010;n++){aNear[n] = 1;}for(int k = 2;k<25000;k++){int j = k + k;while(j<50000){aNear[j] += k;j = j+k;}}for(int d=220;d<50010;d++){if(aNear[d]>d&&aNear[d]<50000&&(d == aNear[aNear[d]])){printf("\n");printf("%d %d",d,aNear[d]);}}该方法是从下到大判断某个数,假如该数是某个数的因子则加上去;
比如:当k为2时,就将2,4,6,8.....加上2
k为3时,将3,6,9,12.... 加上3依此类推,最终的到完整的数据
以上信息来自《程序员编程艺术》
- 【亲和数】
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 亲和数
- 完全数、亲和数
- 亲和数、相亲数
- 亲和数问题
- Big Event in HDU
- sql server中将一个表中的部分数据插入到另一个表中
- uva 10692 - Huge Mods 指数循环节
- 淘汰RM与RMVB的原因
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
- 亲和数
- strstr函数
- 卸载mysql
- php中$_server的详细参数和说明
- linux下RPM工具的使用
- backbone——图解分析
- ubuntu下安装boost环境 --第一种适用成功
- foreach高效并行的例子
- boost库内存池使用