Я нашел этот код здесь в StackOverflow:
public static BitSet computePrimes(int limit) {
final BitSet primes = new BitSet();
primes.set(0, false);
primes.set(1, false);
primes.set(2, limit, true);
for (int i = 0; i * i < limit; i++) {
if (primes.get(i)) {
for (int j = i * i; j < limit; j += i) {
primes.clear(j);
}
}
}
return primes;
}
но я изо всех сил пытаюсь понять, как заставить его работать выше Integer.MAX_VALUE.
Я знаю, что должен использовать long, но что мне нужно изменить (в циклах) в этом методе, чтобы получить простые числа от Integer.MAX_VALUE до 3037000499L, или это вообще возможно?