【发布时间】:2013-12-26 20:49:17
【问题描述】:
由于BitSet.get() 函数使用int 作为参数,我在想是否可以在BitSet 中存储超过2^32 位,如果可以,我将如何检索它们?
我正在做一个 Project Euler 问题,我需要生成素数直到 10^10。我目前用来生成素数的算法是 Erathonesus' Sieve,将布尔值作为位存储在 BitSet 中。有什么解决方法吗?
【问题讨论】:
-
尝试将BigInteger 与“BigInteger.nextProbablePrime”一起使用。对我来说,它以我期望的方式工作。
-
Eratosthenes 的筛子不适用于寻找大素数。我会推荐一种不同的方法。维基百科的条目推荐使用伪正方形素筛。