2

私は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;
    }
}
4

1 に答える 1