Python练习:哥德巴赫猜想
哥德巴赫猜想
哥德巴赫 1742 年给欧拉的信中哥德巴赫提出了以下猜想:任一大于 2 的偶数都可写成两个质数之和。但是哥德巴赫自己无法证明它,于是就写信请教赫赫有名的大数学家欧拉帮忙证明,但是一直到死,欧拉也无法证明。因现今数学界已经不使用“1 也是质数”这个约定,原初猜想的现代陈述为:任一大于 5 的偶数都可写成两个质数之和。
功能拆解成几个小程序:
- 用户输入值的判断:当值为数字是返回True,否则返回False
- 奇数、偶数判断:当值为偶数时返回True,否则返回False
- 质数的判断:质数是数学上的定义,指的是只能被1和它本身整除的数字。通过遍历整除的结果即可判断。
def isEven( num ):
#判断是否是偶数
if num % 2 == 0:
return True
else:
return False def isPrime( num ):
#判断是否是质数
from math import sqrt
if num == 0 or num == 1:
flag = False
elif num == 2:
flag = True else:
for i in range(2, num):
if num % i == 0:
flag = False
break
else:
flag = True
return flag def isNum( string ):
#判断是否是数值
if string.isdigit():
return True
else:
return False
核心的功能已经完成函数化后,组合这些函数完成编程的目标:输入任意一个大于5的偶数,证明这个偶数符合哥德巴赫猜想,并显示是哪两个质数。
respone = input('请输入一个大于5的偶数:')
if isNum(respone): #判断输入是否为整数
respone = int(respone) #判断是否是大于5的偶数
if (respone > 5) and isEven(respone):
#进行猜想判断
i_list = []
for i in range(1,respone):
j = respone - i #分解为两个数字
if isPrime(i) and isPrime(j):
i_list.append(i) #记录已显示的数字
if j in i_list:
pass
else:
print( '{0} = {1} + {2}'.format(respone, i, j))
else:
print('输入错误!')
else:
print('输入错误!')
显示结果:



Python练习:哥德巴赫猜想的更多相关文章
- *CF2.D(哥德巴赫猜想)
D. Taxes time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...
- C#实现哥德巴赫猜想
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Goet ...
- code forces 382 D Taxes(数论--哥德巴赫猜想)
Taxes time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...
- CF735D Taxes 哥德巴赫猜想\判定素数 \进一步猜想
http://codeforces.com/problemset/problem/735/D 题意是..一个数n的贡献是它的最大的因子,这个因子不能等于它本身 然后呢..现在我们可以将n拆成任意个数的 ...
- Codeforces Round #382 (Div. 2) D. Taxes 哥德巴赫猜想
D. Taxes 题目链接 http://codeforces.com/contest/735/problem/D 题面 Mr. Funt now lives in a country with a ...
- Codeforces 735D:Taxes(哥德巴赫猜想)
http://codeforces.com/problemset/problem/735/D 题意:给出一个n,这个n可以分解成 n = n1 + n2 + -- + nk,其中k可以取任意数.要使得 ...
- LightOJ 1259 Goldbach`s Conjecture (哥德巴赫猜想 + 素数筛选法)
http://lightoj.com/volume_showproblem.php?problem=1259 题目大意:给你一个数n,这个数能分成两个素数a.b,n = a + b且a<=b,问 ...
- Codeforces Round #324 (Div. 2) D. Dima and Lisa 哥德巴赫猜想
D. Dima and Lisa Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/probl ...
- 哥德巴赫猜想证明(C语言实现50以内的正偶数证明)
<一>哥德巴赫猜想内容: 一个充分大的偶数(大于或等于6)可以分解为两个素数之和. <二>实现要点: 要点: 判断素数(质数):除了1和本身没有其他约数. 最小的质数:2 判断 ...
随机推荐
- (原创)ubuntu 10.04+ruby1.9.2+rails3 安装记录
第一步当然是现在ruby 1.9.2 的sourcecode了,因为现在的ubuntu 源中还没有1.9.2的版本 我下载的是ruby-1.9.2-p290.tar.gz 然后解压到/usr/loca ...
- Artwork
A template for an artwork is a white grid of n × m squares. The artwork will be created by painting ...
- Ocelot中文文档-日志
目前,Ocelot使用标准的日志记录接口ILoggerFactory/ILogger . 在IOcelotLogger / IOcelotLoggerFactory中提供了标准的asp.net cor ...
- NewLife.Net——构建可靠的网络服务
网络程序应该注册成为系统服务,以保证其自启动以及稳定可靠运行! 这一场,讲讲怎么建立一个生产级别的网络服务. 老规矩,先上源码:https://github.com/nnhy/NewLife.Net. ...
- 使用 MarkDown & DocFX 升级 Rafy 帮助文档
最近使用 DocFX 对 Rafy 框架的帮助文档进行了升级. SandCastle 之前 Rafy 框架的帮助文档,是使用 SandCastle 来编写的(https://github.com/EW ...
- 哈夫曼树【最优二叉树】【Huffman】
[转载]只为让价值共享,如有侵权敬请见谅! 一.哈夫曼树的概念和定义 什么是哈夫曼树? 让我们先举一个例子. 判定树: 在很多问题的处理过程中,需要进行大量的条件判断,这些判断结构的设 ...
- 高性能网络IO模型
同步阻塞式IO开发简单,但在处理IO密集的并发任务时,非常浪费CPU资源,性能低:并且,当一个进程(线程)含有多个套接字上时,同步阻塞式IO会带来问题:因为同步阻塞式IO只支持进程(线程)阻塞在一个套 ...
- Python 基础【二】 上
一.python语言分类 1. C python c语言的python版本 官方推荐 使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行 ...
- 源码分析Session的台前幕后(Asp .Net MVC5)
在这篇文章里,我们从源代码的角度重点分析Session的创建.缓存.销毁.管理. 通常我们说的Session指的是在控制器中使用的Session字段,该字段的类型是HttpSessionState.可 ...
- wordpress上下篇
分页一: <!--上下篇开始--> <div class="shangxia"> <?php $current_category=get_the_ca ...