• Python练习:哥德巴赫猜想


     

    哥德巴赫猜想

    哥德巴赫 1742 年给欧拉的信中哥德巴赫提出了以下猜想:任一大于 2 的偶数都可写成两个质数之和。但是哥德巴赫自己无法证明它,于是就写信请教赫赫有名的大数学家欧拉帮忙证明,但是一直到死,欧拉也无法证明。因现今数学界已经不使用“1 也是质数”这个约定,原初猜想的现代陈述为:任一大于 5 的偶数都可写成两个质数之和。

    功能拆解成几个小程序:

    • 用户输入值的判断:当值为数字是返回True,否则返回False
    • 奇数、偶数判断:当值为偶数时返回True,否则返回False
    • 质数的判断:质数是数学上的定义,指的是只能被1和它本身整除的数字。通过遍历整除的结果即可判断。
     1 def isEven( num ):
     2     #判断是否是偶数
     3     if num % 2 == 0:
     4         return True
     5     else:
     6         return False
     7 
     8 def isPrime( num ):
     9     #判断是否是质数
    10     from math import sqrt
    11     if num == 0 or num == 1:
    12         flag = False
    13     elif num == 2:
    14         flag = True
    15         
    16     else:
    17         for i in range(2, num):
    18             if num % i == 0:
    19                 flag = False
    20                 break
    21             else:
    22                 flag = True
    23     return flag
    24 
    25 def isNum( string ):
    26     #判断是否是数值
    27     if string.isdigit():
    28         return True
    29     else:
    30         return False
    View Code

    核心的功能已经完成函数化后,组合这些函数完成编程的目标:输入任意一个大于5的偶数,证明这个偶数符合哥德巴赫猜想,并显示是哪两个质数。

     1 respone = input('请输入一个大于5的偶数:')
     2 if isNum(respone): #判断输入是否为整数
     3     respone = int(respone) #判断是否是大于5的偶数
     4     if (respone > 5) and isEven(respone):
     5          #进行猜想判断
     6         i_list = []
     7         for i in range(1,respone):
     8             j = respone - i #分解为两个数字
     9             if isPrime(i) and isPrime(j):
    10                 i_list.append(i) #记录已显示的数字
    11                 if j in i_list:
    12                     pass
    13                 else:
    14                     print( '{0} = {1} + {2}'.format(respone, i, j))
    15     else:
    16         print('输入错误!')
    17 else:
    18     print('输入错误!')
    View Code

    显示结果:

  • 相关阅读:
    how to install VLC Player on Fedora 32 Workstation
    Centos 8.2 2004镜像地址
    Fedora 33 Workstation: x86_64 DVD ISO
    [听力/口语]每天十分鐘回音練習
    CSS设置背景色
    设置禁止子标签超出父标签产生了滚动条
    引用自定义的css或者js文件
    js 中使用typeof
    React native 之 Promise
    Mac升级系统后 Pod Install报错-不能用 解决办法
  • 原文地址:https://www.cnblogs.com/violetchan/p/10201699.html
Copyright © 2020-2023  润新知