检查一个数字是否是没有筛子的素数

时间:2014-12-13 07:55:30

标签: c square-root primality-test

所以我需要解决一个问题,找到验证以下内容的第n个数字:它是两个连续素数的总和,它给出一个整数平方根。我的问题是,eratosthenes的筛子使用了太多的内存而且对于素数的幼稚检查太慢了。有什么方法可以快速解决这个问题并且没有附加内存?我尝试使用费马定理,但事实证明它更慢。

提前致谢。

1 个答案:

答案 0 :(得分:1)

你可以使用Rabin-Miller进行素性测试。它是概率性的,所以它只告诉你一个数字可能是素数,但你可以设定确定性水平。它非常快,内存要求也很低。

显然你只需要考虑偶数的平方,因为只有偶数可以是两个素数的总和(一旦你超过2)。