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 相关文章推荐
pyqt4教程之实现windows窗口小示例分享
Mar 07 Python
python中使用xlrd、xlwt操作excel表格详解
Jan 29 Python
python任务调度实例分析
May 19 Python
python opencv3实现人脸识别(windows)
May 25 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
python根据多个文件名批量查找文件
Aug 13 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
python属于解释语言吗
Jun 11 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
Sep 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
php 随机排序广告的实现代码
2011/05/09 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
javascript document.execCommand() 常用解析
2009/12/14 Javascript
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
浅谈Vue.js
2017/03/02 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
2018/03/06 jQuery
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Python部署web开发程序的几种方法
2017/05/05 Python
深入解析神经网络从原理到实现
2019/07/26 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
python lambda的使用详解
2021/02/26 Python
C#如何进行LDAP用户校验
2012/11/21 面试题
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
热门专业求职信
2014/05/24 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
综合管理员岗位职责
2015/02/11 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
创业计划书之书店
2019/09/10 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL