给定素数N,计算下一个素数?

一位同事刚刚告诉我,由于与哈希有关的不可思议的原因,C#词典集合将按质数调整大小。我的直接问题是:“它怎么知道下一个素数?它们是在大型表中还是在运行中进行计算?这是在插入时导致确定大小的可怕的不确定性运行时”

所以我的问题是,给定N(即质数),计算下一个质数的最有效方法是什么?

回答:

已知连续质数之间的间隙非常小,对于质数370261,第一个超过100的间隙发生。这意味着即使简单的蛮力在大多数情况下也足够快,取O(ln(p)*

sqrt(p))。

对于p =

10,000,这是O(921)运算。请记住,我们将在每个O(ln(p))插入后执行一次(粗略地说),这完全在大多数问题的限制内,在大多数现代硬件上,这些问题的发生时间约为毫秒。

以上是 给定素数N,计算下一个素数? 的全部内容, 来源链接: utcz.com/qa/408802.html

回到顶部