我的问题简化为找到两个给定数字之间的素数数量。我的范围可以大到1 to (1000)!
因此我需要一些数学优化。
显然,在这种情况下,筛法会太慢。是否有任何可以应用的数学优化 - 例如,采用这个大空间的较小子集并对其余数字进行推断。
P.S:看起来我可能已经走进了死胡同——但我所寻找的只是一些可能有助于解决这个问题的优化。而且,我只是在寻找单线程方法。
编辑:我一直在考虑并且可以解决许多与素数相关的大问题的一种方法是让某人维护一个全局素数表并使其可用于查找。 PrimeGrid 项目的人们可以为此做出有益的贡献。
既然你想达到最高1000!
(阶乘)。使用当前技术上的当前已知方法,您将无法获得准确的结果。
The 素数计数功能 http://en.wikipedia.org/wiki/Prime-counting_function仅对少数值进行了精确评估,最多可达10^24
。所以你不可能击中1000!
.
但既然你提到了近似值可能就可以了,你可以使用对数积分 http://en.wikipedia.org/wiki/Logarithmic_integral_function作为素数计数函数的近似。
这是基于素数定理 http://en.wikipedia.org/wiki/Prime_number_theorem其中说素数计数函数渐近于对数积分.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)