到目前为止,我一直在使用埃拉托斯特尼筛法来生成所有“n”个素数。
但是,我想知道是否存在更好的算法,或者我们可以改进现有的性能更好的算法吗??
最佳答案
对于足够大的 N(例如超过一百万左右),最好的算法是使用近似值(例如对数积分或黎曼 R 函数),然后使用快速素数计数方法(例如 LMO),然后筛选小的余。这比筛分快许多数量级。
至少有两个开源实现。
后者已经超越了第一个,并且也是多线程的。
添加:Will Ness 还指出了 Daniel Fischer 的一篇精彩帖子,其中提供了解决此问题的不同方法的演练:Calculating and printing the nth prime number
关于primes - 找到第 n 个质数的更好算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44734806/