Project Euler 的问题 #3 是:
13195 的质因数是 5、7、13 和 29。
数字 600851475143 的最大质因数是多少?
我的解决方案需要永远。我认为我得到了正确的实施;但是,当使用大数字进行测试时,我无法看到结果。它永远运行。我想知道我的算法是否有问题:
public class LargestPrimeFactor3 {
public static void main(String[] args) {
long start, end, totalTime;
long num = 600851475143L;
long pFactor = 0;
start = System.currentTimeMillis();
for(int i = 2; i < num; i++) {
if(isPrime(i)) {
if(num % i == 0) {
pFactor = i;
}
}
}
end = System.currentTimeMillis();
totalTime = end - start;
System.out.println(pFactor + " Time: "+totalTime);
}
static boolean isPrime(long n) {
for(int i = 2; i < n; i++) {
if(n % i == 0) {
return false;
}
}
return true;
}
}