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下函数参数的传递(参数带星号的说明)
Sep 19 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
python实现将汉字保存成文本的方法
Nov 16 Python
Python面向对象之类的定义与继承用法示例
Jan 14 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
python flask几分钟实现web服务的例子
Jul 26 Python
django 连接数据库 sqlite的例子
Aug 14 Python
Numpy的简单用法小结
Aug 28 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
完美解决python针对hdfs上传和下载的问题
Jun 05 Python
Python的轻量级ORM框架peewee使用教程
Feb 05 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 金额数字转换成英文
2010/05/06 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
python求解数组中两个字符串的最小距离
2018/09/27 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
浅谈Python 函数式编程
2020/06/20 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
公司新员工的演讲稿注意事项
2014/01/01 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
2014年医生工作总结
2014/11/21 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
2015年父亲节寄语
2015/03/23 职场文书
2015年老干部工作总结
2015/04/23 职场文书
2016新年年会主持词
2015/07/06 职场文书
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL