【发布时间】:2012-02-14 17:33:43
【问题描述】:
我的问题减少到找到两个给定数字之间的素数。我可以有一个像1 to (1000)! 这样大的范围,因此我需要一些数学优化。
显然,在这种情况下,筛法会太慢。是否有任何可以应用的数学优化——例如,取这个大空间的一个较小的子集,并对其余的数字进行推断。
P.S:看起来我可能已经走到了死胡同——但我正在寻找的只是一些可能有助于解决这个问题的优化。而且,我只是在寻找一种单线程的方法。
编辑:我一直在考虑的一种方法可以解决许多与大素数相关的问题 - 是让某人维护一个全局素数表并使其可用于查找。 PrimeGrid 项目的人们可以为此做出有益的贡献。
【问题讨论】:
-
不确定是否有帮助,但请查看Prime Counting Function。但这并不容易评估。
-
发布一些代码——或者至少是一些你尝试过的方法的伪代码。
-
给定的数字是否介于 1 和
10^5之间?或者它们可以更大吗?间隔的长度可能高达10^5? -
给定的数字介于 1 和 N 之间,其中 N 约为 1000!。
-
如果您选择的 N 足够小,使得所有质数