我是 Java 新手。我找到了一个名为 project eulder 的网站,正在练习一个问题。我不明白为什么以下程序不显示任何内容,但当我输入 System.out.println(max); 进入 for 循环它可以工作,但显示所有素数,包括最大的。谁让我只显示最大的素数?
public class LargestPrimeFactor {
public static void main(String[] args) {
long x = 600851475143L;
int max = 0;
for (int i = 1; i <= x; i++) {
if (x % i == 0)
if (isPrime(i))
max = i;
}
System.out.println(max);
}
public static boolean isPrime(int n) {
for (int i = 2; i < n; i++) {
if (n % i == 0)
return false;
}
return true;
}
}