Python编程求质数实例代码


Posted in Python onJanuary 31, 2018

本文研究的主要是Python编程求质数实例,选取了几个数进行了测试,具体如下。

定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

我们知道自然数(除了0和1以外)都可以写成几个质数相乘再乘以一的格式,所以我们可以用以个数去试一试看看它能否将小于它的质数整除。

首先我们创建一个空的list,然后我们知道2是最小的质数,于是我们把2添加进这个空白的list,之后我们开始循环,第一个数从3开始,用3除以小于3的质数,没有小于它的质数能被它整除,我们将3再添加入我们所创建的list,然后循环到4,在list中有一个质数2能将它整除,我们就舍去这个数因为它不是我们所要的质数。后面的以此类推,合数被舍去,质数保存到list中,最后打印出list就是我们所要的质数合集啦。

import time
start=time.clock()
i=input('please enter an integer:')
#创建一个空list
r=list()
#添加元素2
r.append(2)
#从3开始挨个筛选
for a in range(3,i):
  b=False
#用a除以小于a的质数b
  for b in r:
    if a%b==0:
      b=False
      break
    else:
      b=True
  if b==True:
    r.append(a)
print r
t=(time.clock()-start)
print t

如下显示:

Python编程求质数实例代码

下面用1000来测试代码的结果:

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]
3.29336980871

这段代码需要用到一点点list的知识,(学校上课刚好讲到这里),正好可以练习一下如何添加和调用list中的元素哦!

我们来对比一下最容易想到的的办法的效率

import time
start=time.clock()
b=False
i=input('enter an integer please:')
for a in range(2,i):
  for c in range(2,a):
    if a%c==0:
      b=False
      break
    else:
      b=True
  if b==True:
    print a,
elapsed=(time.clock()-start)
print elapsed

运行结果为:

enter an integer please:200
3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 2.86033831663
>>>

运行起来明显比前一段代码要迟钝。

下面,使用第一段代码求100000以内的质数,实在是有些卡,下面结果供参考(仅截取了部分结果):

Python编程求质数实例代码

总结

以上就是本文关于Python编程求质数实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python中encode()方法的使用简介
May 18 Python
将Python的Django框架与认证系统整合的方法
Jul 24 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
python redis 删除key脚本的实例
Feb 19 Python
Python数据类型之String字符串实例详解
May 08 Python
Python (Win)readline和tab补全的安装方法
Aug 27 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
python logging模块的使用详解
Oct 23 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
一文搞懂如何实现Go 超时控制
Mar 30 Python
Python及Django框架生成二维码的方法分析
Jan 31 #Python
Python进阶之尾递归的用法实例
Jan 31 #Python
简单的python协同过滤程序实例代码
Jan 31 #Python
Python进阶之递归函数的用法及其示例
Jan 31 #Python
Python tkinter事件高级用法实例
Jan 31 #Python
pyqt5自定义信号实例解析
Jan 31 #Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 #Python
You might like
php md5下16位和32位的实现代码
2008/04/09 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
JQuery从头学起第二讲
2010/07/04 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
深入浅析vue组件间事件传递
2017/12/29 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
go和python调用其它程序并得到程序输出
2014/02/10 Python
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
网络工程师职业规划
2014/02/10 职场文书
酒鬼酒广告词
2014/03/21 职场文书
团代会宣传工作方案
2014/05/08 职场文书
党支部换届选举方案
2014/05/08 职场文书
食品工程专业求职信
2014/06/15 职场文书
学校志愿者活动总结
2014/06/27 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
研究生简历自我评
2015/03/11 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS