私はJavaが初めてです。project eulder という Web サイトを見つけて、ある問題について練習していました。次のプログラムが何も表示しない理由がわかりませんが、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;
}
}