Python练习:哥德巴赫猜想
2019-01-01 23:21:48来源:博客园 阅读 ()
哥德巴赫猜想?
哥德巴赫 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
核心的功能已经完成函数化后,组合这些函数完成编程的目标:输入任意一个大于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('输入错误!')
显示结果:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:楼+挑战心得
下一篇:调用python已有库的代码
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash