【发布时间】:2013-10-04 22:34:14
【问题描述】:
谁能提供任何prime-counting function 实现的计算上可行的伪代码?我最初尝试对Hardy-Wright algorithm 进行编码,但它的阶乘开始产生可悲的溢出,而且许多其他的似乎必然会产生类似的问题。我在 Google 上搜索了实用的解决方案,但充其量只是发现了非常深奥的数学,我从未见过在传统程序中实现过。
【问题讨论】:
-
这不是真的
floor(x/j) * j == x - (x%j)。然后您链接到的公式变为pi(x) = (-1) + SUM{j=3..n}( ((j-2)!) % j )(?)。接下来使用模乘法(即5! % 7 == (((((2*3)%7)*4)%7)*5)%7)。 -
@SeverynKozak 他们说这不是编程问题的原因是因为您的问题不包含代码。
-
至于提供的不仅仅是伪代码,my answer in another SO thread 提供了 JavaScript 中基本 Legarias-Miller-Odzlinko (LMO) 1985 算法/方法的工作代码 sn-p(可在浏览器中运行) . LMO 构成了所有现代实用的一般素数计数函数的基础,并且已经使用了一种变体 (Gourdon, 2001) 来计算高达 1e28 的素数,尽管即使在现代计算机上使用多线程也需要几个月的时间。大量内核和大量内存。
标签: performance primes pseudocode