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; } }