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 判断 ...
随机推荐
- day10_cookie&session学习笔记
一.会话概述 1.什么是会话?如同打电话. 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 2.会话过程要解决的问题是什么?保持 ...
- Python 基础【一】
python运行流程 一.变量及注释 命名: 合法-变量名由字母.数字和下划线组成,并且不能以数字开头.以下保留字不可以当变量名: ['False', 'None', 'True', 'and', ' ...
- Python_ jiba、snownlp中文分词、pypinyin中文转拼音
import jieba #导入jieba模块 x = '分词的准确度直接影响了后续文本处理和挖掘算法的最终效果.' jieba.cut(x) #使用默认词库进行分词 print(list(jieba ...
- The JRE_HOME environment variable is not defined correctly
启动Tomcat后startup.bat脚本调用了catalina.bat,然后catalina.bat调用了setclasspath.bat,setclasspath.bat的头部定义了JAVA_H ...
- 以Kafka Connect作为实时数据集成平台的基础架构有什么优势?
Kafka Connect是一种用于在Kafka和其他系统之间可扩展的.可靠的流式传输数据的工具,可以更快捷和简单地将大量数据集合移入和移出Kafka的连接器.Kafka Connect为DataPi ...
- mysql workbench EER图,里面的实线以及虚线的关系
ERWin里面线代表实体间的三种关系:决定关系(Identifying Relationship),非决定关系(None-Identifying Relationship),多对多(Many-To-M ...
- linux独有的sendfile系统调用--“零拷贝,高效”
参考:http://blog.csdn.net/caianye/article/details/7576198 如今几乎每个人都听说过Linux中所谓的"零拷贝"特性,然而我经常碰 ...
- sql中count(*)、count(col)、count(1)区别
count(*)和count(列)根本就是不等价的,count(*)是针对于全表的,而count(列)是针对于某一列的,如果此列值为空的话,count(列)是不会统计这一行的. 也就是说count(列 ...
- @ExceptionHandler异常统一处理
之前处理工程异常,代码中最常见的就是try-catch-finally,有时一个try,多个catch,覆盖了核心业务逻辑 try{ .......... }catch(Exception1 e){ ...
- SSM-Spring-07:Spring基于注解的di注入
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 注解: 说起注解,哇哦,每个人都或多或少的用到过 像什么@Overried,@Test,@Param等等之前就 ...