是否存在第n个素数的公式呢?
我们经常跟素数打交道, 我们知道素数的各种验证算法, 但是是否存在素数的生成算法呢?
事实上, 我们有许多可以生成素数的算法, 但是, 由于这些算法的效率极低, 我们基本上不会使用这些算法.
方法一: 素数编码
设 pn 是第n个素数, Sierpinski 先生曾经定义了这样一个常量:

若定义[x]为一取下整函数, 即[x]表示不大于x的最大整数. 那么我们有:
![]()
对于这一类方法, 当把相关常量计算出来时才有实际价值, 这似乎不太可能.
方法二: 利用 Wilson 原理
Willans 先生这样定义了函数 pi(x) :
![]()
那么, 对于大于2的任意整数n, 我们有:
![]()
这个方法虽然比前一个更具体, 但是, 其中涉及到了很大的数, 要应用到实际运算中还有一定的困难.
关于素数还有很多精彩的算法, 比如验证素数的 Miller-Rabin 测试, 以及应用素数性质的 RSA 加密算法, 但有关生成素数的真正可行的算法, 还有待我们继续去探究.
参考文献: Prime FAQ, Chris K. Caldwell
Categories: Brainstorm, General Math
生成素数的公式有很多,精确到第n个的还真没听说过