这个问题在这里已经有了答案:
10年前关闭。
尽管我已经编写了一个函数来查找 n ( primes(10) -> [2, 3, 5, 7]
) 下的所有素数,但我仍在努力寻找一种快速的方法来查找前 n 个素数。执行此操作的最快方法是什么?
最佳答案
从估计 g(n) = n log n + n log log n
* 开始,它估计 n > 5 时第 n 个素数的大小。
然后对该估计进行筛选。g(n)
给出了高估,这是可以的,因为我们可以简单地丢弃生成的大于所需 n 的额外素数。
然后考虑“Fastest way to list all primes below N in python”中的答案。
如果您担心代码的实际运行时间(而不是算法时间复杂度的数量级),请考虑使用使用 numpy 的解决方案之一(而不是“纯 python”解决方案之一)。
*当我写 log
时,我指的是自然对数。