0

コードで範囲外エラーが発生するのはなぜですか? 3 行目の変数 n を initate するときに、int、long、float、または double を試行すると、エラーが発生します。600851475143 は明らかに long または float の範囲内ですが、これは Eclipse のすべてのプログラムで発生しています。

public class LargestPrimeFactor {
    public static void main(String arg[]){
        long n = 600851475143;
        for(float i=2; i<= n; i++){
            if((n%i==0)&&(n!=i)){
                n/=i;
                while((n%i==0)&&(n!=i)){
                    n/=i;
                }
            }
        }
        System.out.println("The greatest prime divisor is "+n+".");
    }
}
4

0 に答える 0