【发布时间】:2019-05-18 15:17:17
【问题描述】:
我用 Sieve Of Eratosthenes 进行了尝试,但我很快遇到了我的布尔数组无法超过 Integer.MAX 的问题
我应该如何解决这个问题?
【问题讨论】:
-
您可以尝试使用 BitSet,它应该占用布尔数组内存的八分之一。
-
BitSet 就是答案。您可以自己实现一个,但为什么要麻烦呢?
-
您只需要筛选奇数,因为 2 是唯一的偶素数。这将使您的 BitSet 的存储需求减半。如果这不起作用,请使用分段筛,以较小的块处理整个范围。
标签: java primes long-integer