找到第n个素数的更好的算法?

时间:2017-06-24 09:13:47

标签: primes sieve-of-eratosthenes

直到现在,我一直在使用Eratosthenes的筛子来生成所有的' n'素数。

然而,我想知道是否存在更好的算法,或者我们能否改进现有的更好的算法?

1 个答案:

答案 0 :(得分:3)

对于足够大的N(例如超过一百万左右),最好的算法是使用近似(例如对数积分或Riemann R函数),然后使用快速素数计数法,如LMO,然后筛选剩余的小块。这比筛分快了许多个数量级。

请参阅https://math.stackexchange.com/questions/507178/most-efficient-algorithm-for-nth-prime-deterministic-and-probabilistic

至少有两个开源实现。

后者已经超越了第一个,并且也是多线程的。

添加:Ness是否还指出Daniel Fischer的一篇好文章,提供了解决此问题的不同方法的演练:Calculating and printing the nth prime number