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字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
python uuid模块使用实例
Apr 08 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
一篇文章快速了解Python的GIL
Jan 12 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
Django框架模板用法入门教程
Nov 04 Python
基于h5py的使用及数据封装代码
Dec 26 Python
Python class的继承方法代码实例
Feb 14 Python
python能做哪些生活有趣的事情
Sep 09 Python
python实现快速文件格式批量转换的方法
Oct 16 Python
Opencv+Python识别PCB板图片的步骤
Jan 07 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/04/02 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
销售团队激励口号
2014/06/06 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
水电维修专业推荐信
2014/09/06 职场文书
护士医德医风自我评价
2014/09/15 职场文书
2015年副班长工作总结
2015/05/15 职场文书
看上去很美观后感
2015/06/10 职场文书
MySQL七种JOIN类型小结
2021/10/24 MySQL
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python