【发布时间】:2011-09-26 18:02:53
【问题描述】:
我正在实施埃拉托色尼筛法,有关此问题的解释,请参阅 http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes。但是我想调整它来生成 M 个素数,而不是从 1 到 N 的素数。我这样做的方法是简单地创建一个足够大的 N,以便所有 M 个素数都包含在这个范围内。有没有人有任何好的启发式来模拟素数的增长?如果您希望发布代码 sn-ps,我将在 Java 和 C++ 中实现它。
【问题讨论】:
-
有一个筛子算法的版本,你可以用两个数组来实现,两个数组的大小都等于你希望找到的素数的数量。一个持有素数,另一个持有同一索引处素数的素数倍数。这样你就不需要计算筛子的大小(你的问题是 N)。
标签: java c++ algorithm primes sieve