如何有效地生成 3037000499(Long.MAX 的平方根)之前的素数?

How do I efficiently generate Prime Numbers up until 3037000499 (the square root of Long.MAX)?

我用 Sieve Of Eratosthenes 试过了,但我很快 运行 遇到了我的布尔数组不能超过 Integer.MAX

的问题

我该如何解决这个问题?

数组

使用二维或更多维地图。所以将 long 转换为两个整数(用于访问数组)将是这样的:

array[N / Integer.MAX_VALUE][N % Integer.MAX_VALUE] 其中 N 是 long 并且 array 是布尔数组。