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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
Python使用正则匹配实现抓图代码分享
Apr 02 Python
Python素数检测的方法
May 11 Python
Python网络编程中urllib2模块的用法总结
Jul 12 Python
Python实现的朴素贝叶斯分类器示例
Jan 06 Python
Python发送http请求解析返回json的实例
Mar 26 Python
python实现支付宝转账接口
May 07 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
python实现同一局域网下传输图片
Mar 20 Python
在脚本中单独使用django的ORM模型详解
Apr 01 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 Python
python安装及变量名介绍详解
Dec 12 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开发中的中文编码问题
2013/08/08 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
Python实现从百度API获取天气的方法
2015/03/11 Python
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
django中media媒体路径设置的步骤
2019/11/15 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
应届毕业生求职信范文分享
2013/12/26 职场文书
运动会广播稿500字
2014/01/28 职场文书
行政助理工作职责范本
2014/03/04 职场文书
财产公证书
2014/04/10 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
教师党员承诺书2015
2015/01/21 职场文书
离婚案件被告代理词
2015/05/23 职场文书