为什么我的代码会产生超出范围的错误?如果我在第 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+".");
}
}