欧拉工程第三题 找出一个合数的最大质数因子
2016-10-19 22:16
316 查看
题目:
13195的质数因子有5,7,13和29。
600851475143的最大质数因子是多少?
解题方法:
本次求解过程使用了一个比较聪明的做法,这也是经过仔细思考之后才想出来的,当然也是受到了某位朋友的启发。
由于方法恰当,使得代码量减少,运行效率也得到了提高。类中的方法使用了两个迭代,这是一个比较特点的地方。
程序代码:
13195的质数因子有5,7,13和29。
600851475143的最大质数因子是多少?
解题方法:
本次求解过程使用了一个比较聪明的做法,这也是经过仔细思考之后才想出来的,当然也是受到了某位朋友的启发。
由于方法恰当,使得代码量减少,运行效率也得到了提高。类中的方法使用了两个迭代,这是一个比较特点的地方。
程序代码:
public class LargestPrimeFactor { public static long largestPrimeFactor(long number){ if(number%2==0) return largestPrimeFactor(number/2); for(long i=3;i*i<=number;i=i+2) { if(number%i==0) return largestPrimeFactor(number/i); } return number; } public static 4000 void main(String[] args) { LargestPrimeFactor lpf=new LargestPrimeFactor(); long start=System.currentTimeMillis(); System.out.println(lpf.largestPrimeFactor(600851475143L)); long end=System.currentTimeMillis(); System.out.println((end-start)+"毫秒"); } }
相关文章推荐
- 欧拉工程第3题 找出一个合数的最大质数因子
- 欧拉计划之题目3:找出一个合数的最大质数因子。
- 题目3:找出一个合数的最大质数因子
- 找出一个合数的最大质数因子
- 欧拉计划---0003 Largest prime factor(找出一个合数的最大质数因子)
- 欧拉工程第7题 找出第10001个质数
- 欧拉工程第27题 找出为连续数字产生最多质数的二次公式
- 欧拉工程第4题 找出由两个三位数乘积构成的最大回文数
- 欧拉工程第8题 找出这个1000位数字中连续13个数字乘积的最大值
- PAT 1096. Consecutive Factors (20)(最大连续乘积因子)(sqrt(n)判断一个数是否为质数的深刻理解)
- c++训练题(求某个数的最大质数因子)兼自己写的一个打印一定范围内质数方法
- Java 欧拉工程 第二十七篇【找出为连续数字产生最多质数的二次公式】
- 今天大家做的一个比赛题:有6个文件,每个文件里大约200w整数,每行一个找出所有文件里最大的一个数字
- 如何用最少的比较次数找出一个数列的最大和最小值
- 一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。复杂度如果是O(n2)则不得分。
- 编写一个函数 找出double类型中最大数的下标 输出下标
- 一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。 复杂度如果是O(n2)则不得分。
- 快速找出一个数组中的最大数、第二大数
- 一个数组的值先从小到大递增后从大到小递减,找出最大的值
- 05年华中科大机试第二题(输入一个四行五列的矩阵,找出每列最大的两个数)