什么是在python中解决这个问题最有效的方法?测试勒让德的结合

时间:2015-08-30 16:17:22

标签: python

勒佩雷尔的猜想(由Adrien-Marie Legendre于1912年提出)表明,对于每个正整数n,在[n ^ 2,(n + 1)^ 2]范围内至少有一个素数。< / p>

实现接受输入参数n的函数legendre,并测试Legendre对从1到输入数n的数字范围的猜想。

这意味着如果输入为4,则应检查在1 ^ 2和2 ^ 2之间是否存在至少一个素数,并且在2 ^ 2和3 ^ 2之间至少有一个素数,并且至少有一个素数3 ^ 2和4 ^ 2,以及4 ^ 2和5 ^ 2之间的至少一个素数。

1 个答案:

答案 0 :(得分:3)

对于较小的n,只需要sieve到n ^ 2进行素数和强力检查。对于较大的n - 在形式[k ^ 2,(k)的范围内对形式6a + 1,6a + 5(直到找到素数)的数字应用良好的素性测试,例如Rabin-Miller。 +1)^ 2]对于k <= n。