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之玩转字符串(2)
Sep 14 Python
python获取文件后缀名及批量更新目录下文件后缀名的方法
Nov 11 Python
详细解读Python的web.py框架下的application.py模块
May 02 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
Python3中的真除和Floor除法用法分析
Mar 16 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
简单了解OpenCV是个什么东西
Nov 10 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
详解Python中的各种转义符\n\r\t
Jul 10 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
numpy np.newaxis 的实用分享
Nov 30 Python
解决tensorflow读取本地MNITS_data失败的原因
Jun 22 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部分常见问题总结
2008/03/27 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
JS验证不重复验证码
2017/02/10 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
Python迭代器模块itertools使用原理解析
2019/12/11 Python
python 通过文件夹导入包的操作
2020/06/01 Python
英国自行车商店:AW Cycles
2021/02/24 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
留学自荐信
2013/10/10 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
企业宣传口号
2014/06/12 职场文书
应急处置方案
2014/06/16 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
小学教师教学反思
2016/02/24 职场文书
python析构函数用法及注意事项
2021/06/22 Python
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL