当java明显没有超出范围时超出范围错误?

时间:2013-07-28 23:06:02

标签: range outofrangeexception

为什么我的代码产生超出范围的错误?如果我在第3行中启动变量n时尝试int,long,float或double,则会产生错误。我在Eclipse中的所有程序都会发生这种情况,尽管600851475143显然在long或float范围内。

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+".");
    }
}

0 个答案:

没有答案