搜索
写经验 领红包
 > 育儿

孪生素数怎么求(孪生素数是什么意思)

导语:筛出孪生素数来!介绍一种机械制定“孪生素数表”的方法

本文要介绍一种可以筛出孪生素数的机械办法,这个办法可用于计算机程序设计而制定“孪生素数表”,目前通行的办法可以说效率都不太高。

先简单介绍一下埃拉托色尼筛法,我们举例来说明。

给定一张自然数表,譬如1~100,然后我们拿起笔来:

先删掉1,然后保留下一个数2;

然后删掉表中除了2以外的所有2倍数;

然后继续保留下一个未被上一步骤删掉的数3,而删掉表中除了3以外的所有3倍数;

然后继续保留下一下未被上一步骤删掉的数5,而删掉表中除了5以外的所有5倍数;

然后继续保留下一个未被上一步骤删掉的数7,而删掉表中除了7以外的所有7倍数;

然后继续保留下一个未被上一步骤删掉的数7,而删掉表中除了11以外的所有11倍数;但此时我们会发现,所有该删的数在之前的步骤中已经全部删除。由此我们可以确定:到此为止,所有保留下来的自然数都是素数。这样我们就得到了一张1~100的素数表。

理论上,不管多大的一张“素数表”,都可以采用上述的埃拉托色尼筛法来机械性地得到。

有没有一种类似埃拉托色尼筛法的办法来获得一张“孪生素数表”呢?事实上是存在的。我自己独立发现了一种方法(好像没见到过其他人使用过我这种筛法来获取孪生素数的)。我们继续以举例来说明。

给定一张自然数表,譬如1~100,然后我们拿起笔来:

筛掉所有5k±1形式的数:4,6,9,11,14,16,19,21,24,26,29,31,34,36,39,41,44,46,49,51,54,56,59,61,64,66,69,71,74,76,79,81,84,86,89,91,94,96,99;

然后接着上一步筛掉所有剩余的7k±1形式的数:8,13,15,20,22,27,43,48,55,57,62,78,83,85,90,92,97;

然后接着上一步筛掉所有剩余的11k±2形式的数:35,42,53,68,75;

然后接着上一步筛掉所有剩余的13k±2形式的数:28,37,63,67,80,93;

然后接着上一步筛掉所有剩余的17k±3形式的数:65,82,88;

然后接着上一步筛掉所有剩余的19k±3形式的数:73,98;

然后接着上一步筛掉所有剩余的23k±4形式的数:已无可删之数。

结束筛法进程。

于是剩下来的数有如下25个:

1,2,3,5,7,12,17,18,23,25,30,32,33,38,40,45,47,52,58,70,72,77,87,95,100

上述的每一个数,都可以投射出一对孪生素数,所以这是一张可以间接映射到孪生素数对的数表。

投射的规则是将上述25个数分别代入(6k-1,6k+1)中的k,于是就有如下25对被投射出的孪生素数:

(5,7),(11,13),(17,19),(29,31),(41,43),(71,73),(101,103),(107,109),(137,139),(149,151),(179,181),(191,193),(197,199),(227,229),(239,241),(269,271),(281,283),(311,313),(347,349),(419,421),(431,433),(461,463),(521,523),(569,571),(599,601)

为什么可以这样呢?其实原因很简单:

所有的孪生素数对除了(3,5)以外,都属于(6k-1,6k+1)形式的数对;假设m为任意自然数,此时:

当k=p(x)m±(p(x)+1)/6 (p(x)为6k-1形式的任意素数) 或 k=p(x)m±(p(x)-1)/6 (p(x)为6k+1形式的任意素数)时,6k-1与6k+1之中至少有一个数是合数。如果k的取值非上述任意一类形式的自然数,此时(6k-1,6k+1)就必然是孪生素数。

请参看关于孪生素数的文章:《一条孪生素数分布规律:相邻素数平方数区间总有2对以上孪生素数》

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请与我联系,一经查实立刻删除内容。本文内容由快快网络小纳创作整理编辑!