0

long変数に値を割り当てようとしていますが、Eclipseでコンパイルエラーが表示されます。誰かがこれの何が悪いのかを理解できますか?私はチェックを行い、値が長い範囲にあることを確認しました。

public static void main(String[] args) {
        **long num = 600851475143;**

        for(long i = num/2; i<1; i--) {
            if(num%i == 0 && isPrime(i) == true) {
                System.out.println(i);
                break;
            }
        }

    }
4

2 に答える 2

5

追加Lして作成します

long num = 600851475143L;

も参照してください

于 2012-06-04T06:17:09.007 に答える
3

リテラルに追加Lして、コンパイラにそれがであると伝える必要がありlongます。Javaの整数リテラルはintデフォルトです。入力した数値がに収まらないためint、コンパイラは文句を言います。

于 2012-06-04T06:16:54.117 に答える