专栏首页python3Python练习:哥德巴赫猜想

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

显示结果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python学习 day01打卡

    if语句可以进行嵌套,但是最好不要超过三层,最多不要超过5层,层数太多不好调试和修改.

    用户2398817
  • Struts Spring Hibern

    <!--[if !supportEmptyParas]--> <!--[endif]-->

    用户2398817
  • Python 实现的12306抢票脚本

    本脚本使用一个类来实现所有代码,大体上分为以下几个模块及其步骤: - 初始化对象属性(在抢票前进行的属性初始化,包括初始化浏览器模拟对象,个人信息等)。 - 建...

    用户2398817
  • 1052 卖个萌 (20 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    韩旭051
  • Leetcode 229. Majority Element II

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn....

    Tyan
  • linux进程监控重启shell脚本

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

    bear_fish
  • iOS应用代码注入防护

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能、代码健壮相关的问题,我们有时还需要考虑到应用安全的问题。 那么应用安全的问题涉及到很多方面。比...

    iOSSir
  • HDUOJ---------Kia's Calculation

    Kia's Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/...

    Gxjun
  • Android Battery 架构【转】

    android中和电源相关的服务有两个他们在/frameworks/base/services/core/java/com/android/server/

    233333
  • iOS安全之三攻三防

    互联网世界每分钟都在上演黑客攻击,由此导致的财产损失不计其数。金融行业在安全方面的重视不断加深,而传统互联网行业在安全方面并没有足够重视,这样导致开发的APP在...

    iOSSir

扫码关注云+社区

领取腾讯云代金券