public class Problem_3 {
public static void main(String... args) {
long limit = 600851475143L;
long largestPrimeFactor = 0;
for (long number = 2; number < limit; number++) {
if (isPrime(number)) {
if ((limit % number == 0)){
largestPrimeFactor = number;
}
}
}
System.out.println(largestPrimeFactor);
}
public static boolean isPrime(long number) {
for (int i = 2; i < number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
我敢肯定,上面的程序不是无限循环的。我测试limit = 13195;
并得到了想要的结果29
我不明白为什么我的 CPU 需要永远运行它。
EDIT:
它是我的 ProjectEuler.net 问题编号 3 的代码。