Atkin的分段筛可能吗?

K.S*_*eff 5 algorithm sieve sieve-of-eratosthenes sieve-of-atkin

我知道可以实施Eratosthenes筛,以便在没有上限(分段筛)的情况下连续找到质数.

我的问题是,阿特金/伯恩斯坦的筛子能否以同样的方式实施?

相关问题:C#:如何制作Atkin增量扫描

然而,相关问题只有一个答案,即"所有筛子都不可能",这显然是不正确的.

use*_*810 4

Atkin/Bernstein 在其原始论文的第 5 节中给出了分段版本。伯恩斯坦的primegen程序大概使用了这种方法。

  • 阿特金和伯恩斯坦在他们的论文中没有提到,尽管它出现在 C 源代码中,但使用大范围所需的页面分割来维持阿特金筛的效率是极其困难的:1)素数平方自由步骤很快变得非常困难。比一页大得多,在处理这些数据时需要一定的复杂性(并且效率越来越低),并且 2)计算二次中使用的每个“x”和“y”变量的新页面起始点变得越来越耗时解决方案的范围不断增加,因此 O(n) 相对性能永远不会发生。 (2认同)