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

标签 algorithm math primes

一位同事刚刚告诉我,由于与散列相关的神秘原因,C# 字典集合会按素数调整大小。我的直接问题是,“它如何知道下一个质数是什么?他们是在讲述一个巨大的表还是动态计算?这是一个可怕的插入上的非确定性运行时导致调整大小”

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

最佳答案

gaps between consecutive prime numbers已知非常小,第一个超过 100 的差距出现在素数 370261 上。这意味着即使是简单的蛮力在大多数情况下也足够快,在 O(ln(p)*sqrt(p)) 上平均数。

对于 p=10,000,这是 O(921) 次操作。请记住,我们将在每次 O(ln(p)) 插入(粗略地说)时执行一次此操作,这完全在大多数现代硬件上以毫秒为单位的大多数问题的限制范围内。

关于algorithm - 给定素数 N,计算下一个素数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4475996/

相关文章:

algorithm - 冲浪指标

java - 筛选高达 10^12 的素数

python - 为什么我的第一个查找素数的函数比另一个函数花费的时间要长得多?

java - 在亚线性时间搜索二维数组

algorithm - 尝试确定一棵树是否是有效的二叉搜索树

python - sorted() 函数的复杂度是多少?

c - 使用 Lucas-Lehmer 素性检验的 Mersenne 素数

c - 如何确定这个c程序的时间复杂度

c++ - 内插弧度角?

python-2.7 - 为什么在 Python 中 (5 % 2) 和 (-5 % 2) 都是一样的