primes - 找到第 n 个质数的更好算法?

标签 primes sieve-of-eratosthenes

到目前为止,我一直在使用埃拉托斯特尼筛法来生成所有“n”个素数。

但是,我想知道是否存在更好的算法,或者我们可以改进现有的性能更好的算法吗??

最佳答案

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

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

至少有两个开源实现。

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

添加:Will Ness 还指出了 Daniel Fischer 的一篇精彩帖子,其中提供了解决此问题的不同方法的演练:Calculating and printing the nth prime number

关于primes - 找到第 n 个质数的更好算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44734806/

相关文章:

java - 面试题: What is the fastest way to generate prime number recursively?

java - 如何创建一个代码来告诉两个整数互质?

java - 为什么与 Java 或 C# 中的相同算法相比,Python 中的素数筛如此慢?

c++ - 我昨天读到了埃拉托色尼筛法,想实现它

c++ - Eratosthenes 算法筛选素数(C++)

python - 合并迭代器产生模糊的结果

java - 如何优化算法以能够在java中确定10位长素数

python - python中大数的素因数分解

ruby - ruby 中的欧拉 #3。我对 ruby 有什么不了解的?

Python 查找任意两个数之间的素数