算法练习-相亲数
来源:互联网 发布:网店淘宝怎么刷信誉 编辑:程序博客网 时间:2024/04/27 23:56
问题描述
220的真因数之和为1+2+4+5+10+11+20+22+44+55+110=284
284的真因数之和为 1+2+4+71+142=220
毕达拉哥斯把这样的数对A,B称为相亲数:A的真因数之和为B,而B的真因数之和为A。求100000以内的相亲数。
问题分析
这个问题的关键是求真因数之和,我们可以采取穷举法,从2开始一个一个判断有没有相亲数,假设判断A,我们可以先求出A的真因数之和B,接着算出B的真因数之和C,如果C与A相等,即A与B为相亲数。
package Code1;public class Code3_4相亲数 { private static int GetSum(int num){ int sum=1; int limit=(int)Math.sqrt(num); for(int i=2;i<=limit;i++){ if(num%i==0){ sum+=i+num/i; } } return sum; } public static void Run(int from,int to){ int perfertCount=0; int amicablePairCount=0; for(int num=from;num<=to;num++){ int sum1=GetSum(num); if(sum1>num){ int sum2=GetSum(sum1); if(sum2==num){ System.out.printf("%5d和&%-5d是一对相亲数\n",sum1,sum2); amicablePairCount++; } } } System.out.println("在"+from+"到"+to+"中共有"+amicablePairCount+"对相亲数"); } public static void main(String[] args) { Run(2,100000); }}
运行结果
阅读全文
0 0
- 算法练习-相亲数
- 算法练习:水仙花数、完全数、相亲数
- 算法练习:水仙花数、完全数、相亲数
- 算法进化历程之相亲数
- 关于“相亲数”的算法实现
- 相亲数
- 相亲数
- 相亲数&完全数最简单算法
- 亲和数、相亲数
- 奇妙的相亲数
- Java相亲数
- 趣味整数-相亲数
- 相亲数环
- 算法练习-水仙花数
- 算法练习-黑洞数
- 算法练习:两数之和
- 算法练习---数独游戏
- 相亲
- MFC 树控件使用例子
- cardview的简单使用
- 2017.5.24并查集小结
- 【tensorflow学习】使用tensorboard实现数据可视化
- c# Invoke和BeginInvoke 区别
- 算法练习-相亲数
- nginx+lua+memcache封禁频繁访问ip
- 金山面试题
- 基础的ajax请求
- 将网页中的相对路径转化为绝对路径
- ffmpeg编译 (3.3版本) 以及 命令行工具的集成
- .Net图片上传
- windows下rudy更换sources之淘宝镜像
- maven 小结学习(一)