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下利用OpenCV来旋转图像的教程
Apr 16 Python
python在指定目录下查找gif文件的方法
May 04 Python
python将ansible配置转为json格式实例代码
May 15 Python
python 以16进制打印输出的方法
Jul 09 Python
Pycharm无法显示动态图片的解决方法
Oct 28 Python
Python3.5装饰器典型案例分析
Apr 30 Python
Python实现计算文件MD5和SHA1的方法示例
Jun 11 Python
在Python中获取操作系统的进程信息
Aug 27 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 Python
Python 用turtle实现用正方形画圆的例子
Nov 21 Python
Python 中如何实现参数化测试的方法示例
Dec 10 Python
解决Python 写文件报错TypeError的问题
Oct 23 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
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
PHP备份/还原MySQL数据库的代码
2011/01/06 PHP
php中大括号作用介绍
2012/03/22 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
PHP asXML()函数讲解
2019/02/03 PHP
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
jQuery使用方法
2017/02/04 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
js实现导航跟随效果
2018/11/17 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
路政管理专业推荐信
2013/11/11 职场文书
公司委托书格式范本
2014/09/16 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
vue+spring boot实现校验码功能
2021/05/27 Vue.js
Java如何实现树的同构?
2021/06/22 Java/Android
Redis 哨兵机制及配置实现
2022/03/25 Redis
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸