考虑我下面的代码来查找数字 600851475143 的最大素数:
public class Three {
public static void main(String[] args) {
int counter = 0, largePrime = 0;
for (int i = 2; i <= 600851475143; i++){
for(int x = 2; x < = i; x++){
if(i %x == 0){
counter++;
}
}
if (counter == 1){
// System.out.println(i);
largePrime=i;
}
counter=0;
}
System.out.println(largePrime);
}
}
Java 无法运行它,因为它超出了 int 限制。我也尝试过 long、double 和 BigInteger,但无济于事。有没有办法让 for 循环像这样迭代超过 2.17b 次?