自学Python:寻找孪生素数

作者: 小强聊成长 | 来源:发表于2022-01-05 11:06 被阅读0次

什么是孪生素数?

所谓孪生素数指的是间隔为2的两个相邻素数,因为它们之间的距离已经近得不能再近了,如同孪生兄弟一样,故将这一对素数称为孪生素数。

我们可以写出3~100以内的孪生素数,一共有8对,分别是(3,5),(5,7),(11,13),(17,19),(29,31),(41,43),(59,61)和(71,73)。随着数字的增大,孪生素数的分布也越来越稀疏,人工寻找孪生素数变得非常困难。

有个著名的猜想——孪生素数猜想,即孪生素数是否有无穷多对,这是数论中还有待解决的一个重要问题。此处我们只讨论在有限范围内的孪生素数求解问题。

那么问题来了:求出3~1000以内的所有孪生素数。

下面直接上代码:

########################

import math

def sushu(n):#判断n是否为素数

    k = math.sqrt(n) + 1

    i = 2

    while i <= k:

        if n % i == 0:

            return 0  # n能被i整除,不是素数,返回0

        i += 1

    return 1    # n是素数,返回1

if __name__=="__main__":

    count = 0  # 计数器

    print("3到1000之间的孪生素数:")

    for i in range(3, 1000):

        if sushu(i) and sushu(i+2):

            print("(%-3d, %3d)  " %(i, i+2), end="")

            count += 1

            if count % 8 == 0:# 每8个数换一行

                print()

    print("\n1000以内的孪生素数共有%d对" %count)

########################

执行结果如下:

3到1000之间的孪生素数:

(3  ,  5)  (5  ,  7)  (11 ,  13)  (17 ,  19)  (29 ,  31)  (41 ,  43)  (59 ,  61)  (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)  (617, 619)  (641, 643)  (659, 661)  (809, 811)  (821, 823) 

(827, 829)  (857, 859)  (881, 883) 

1000以内的孪生素数共有35对

________________END______________

相关文章

  • 自学Python:寻找孪生素数

    什么是孪生素数? 所谓孪生素数指的是间隔为2的两个相邻素数,因为它们之间的距离已经近得不能再近了,如同孪生兄弟一样...

  • 自学Python:寻找素数

    什么是素数? 素数是指除了1和它本身以外再没有其他因子的自然数。 在数论中,素数是最纯粹也最令人着迷的概念。在所有...

  • 自学Python:寻找可逆素数

    可逆素数是什么? 可逆素数是指一个素数将其各位数字的顺序倒过来构成的反序数也是素数。 请从小到大输出所有4位数的可...

  • 自学Python:寻找回文素数

    什么是回文素数? 回文素数指的是,对一个整数n从左向右和从右向左读其数值都相同且n为素数,则称整数n为回文素数。比...

  • 孪生素数

    1.问题描述 所谓孪生素数指的是间隔为2的两个相邻素数,因为它们之间的距离已经近得不能再近了,如同孪生兄弟一样,所...

  • 「python」寻找素数

    之前自学过python,写过自动化脚本,也自学过django项目开发,但纯属囫囵吞枣式的,拜读该项目之后,还是想系...

  • 孤独的素数,孪生素数

    什么是素数。 素数是我们小学就学习过的数学概念。 素数是指在大于1的自然数中,除了1和该数自身外,无法被其他自然数...

  • 证明:素数n和n+2(n>5)的质数对之和能被12整除

    思路 这是一个数学结论——孪生素数。 证明 因为n>5,所以必有6k+1和6k-1。这个结论叫做孪生素数。于是n+...

  • 自学Python:求梅森素数

    什么是梅森素数? 先说梅森数,梅森数(Mersenne Prime)指的是形如2n-1的正整数,其中指数n是素数,...

  • 自学Python:寻找窃贼

    警察审问4名窃贼嫌疑犯。现在已知,这4人当中仅有一名是窃贼,还知道这4个人中的每个人要么是诚实的,要么总是说谎。 ...

网友评论

    本文标题:自学Python:寻找孪生素数

    本文链接:https://www.haomeiwen.com/subject/gusxqrtx.html