Java 在长变量中存储12位整数会导致编译错误,为什么?
我正试着做一个Euler项目的问题,它涉及到对大量数据的计算。我知道long用于分配大的数字,但当我编译时,它会给我以下错误: 错误:整数太大:600851475143长数值= 600851475143; 这是我的代码:Java 在长变量中存储12位整数会导致编译错误,为什么?,java,Java,我正试着做一个Euler项目的问题,它涉及到对大量数据的计算。我知道long用于分配大的数字,但当我编译时,它会给我以下错误: 错误:整数太大:600851475143长数值= 600851475143; 这是我的代码: public static void main(String[] args) { long bigDiv, div = 0; long num = 600851475143; bigDiv = 1; for(long i = 2; i < num; i++
public static void main(String[] args) {
long bigDiv, div = 0;
long num = 600851475143;
bigDiv = 1;
for(long i = 2; i < num; i++) {
if(num % i == 0) {
for(long j = 2; j < i; j++) {
if(i % j == 0)
div++;
}
if(div == 0)
bigDiv = i;
}
}
System.out.println("Biggest prime divisor = " + bigDiv);
}
publicstaticvoidmain(字符串[]args){
long-bigDiv,div=0;
长数=600851475143;
bigDiv=1;
用于(长i=2;i
如果没有添加L
num
将被解释为一个最大值为的整数
l
也可以使用,但看起来太像1
,因此建议使用前者
欲了解更多信息,请参阅
long num = 600851475143L;