您的位置:首页 > 其它

题目3:找出一个合数的最大质数因子

2015-06-23 22:20 232 查看
13195的质数因子有5,7,13和29.

600851475143的最大质数因子是多少?

 

原题目链接:Problem 3

这题不能暴力算,算好久,需要用个递归

public class Problem3 {

//answer 6857
public static void main(String[] args) {
Long c = 600851475143l;
System.out.println(getPrime(c));
}

public static long getPrime(long value) {

for (long i = 2; i < value; i++) {
long remainder = value % i;
if (remainder == 0) {
long vv = value / i;
if (isPrime(vv) && !isPrime(i)) {
return vv;
} else if (isPrime(vv) && isPrime(i)) {
return vv > i ? vv : i;
} else {
return getPrime(vv);
}

}
}
return 1;
}

public static Boolean isPrime(long value) {
Boolean flag = true;
for (int i = 2; i <= Math.sqrt(value); i++) {
if (value % i == 0) {
flag = false;
break;
}
}
return flag;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: