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调用新浪微博API项目实践
Jul 28 Python
Python中声明只包含一个元素的元组数据方法
Aug 25 Python
Python操作MySQL数据库9个实用实例
Dec 11 Python
Python max内置函数详细介绍
Nov 17 Python
python实现烟花小程序
Jan 30 Python
python从子线程中获得返回值的方法
Jan 30 Python
三步实现Django Paginator分页的方法
Jun 11 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
Django 实现外键去除自动添加的后缀‘_id’
Nov 15 Python
python:动态路由的Flask程序代码
Nov 22 Python
一文了解python 3 字符串格式化 F-string 用法
Mar 04 Python
基于python实现matlab filter函数过程详解
Jun 08 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&MYSQL留言板源码
2020/07/19 PHP
Cakephp 执行主要流程
2010/03/24 PHP
PHP修改session_id示例代码
2014/01/08 PHP
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Python面向对象特殊成员
2017/04/24 Python
python在文本开头插入一行的实例
2018/05/02 Python
python梯度下降法的简单示例
2018/08/31 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
Python文件路径名的操作方法
2019/10/30 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
Python sep参数使用方法详解
2020/02/12 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
天猫精选:上天猫,就够了
2016/09/21 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
10条PHP编程习惯
2014/05/26 面试题
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
信息工程学院毕业生推荐信
2013/11/05 职场文书
外贸业务员岗位职责
2013/11/24 职场文书
初中生个人学习的自我评价
2013/12/04 职场文书
个人培训自我鉴定
2014/03/28 职场文书
老公保证书范文
2014/04/29 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
2016七夕情人节感言
2015/12/09 职场文书
Python实现学生管理系统(面向对象版)
2021/06/24 Python
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python