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抓取网页中的图片示例
Feb 28 Python
python实现支持目录FTP上传下载文件的方法
Jun 03 Python
Python中的fileinput模块的简单实用示例
Jul 09 Python
Python网络编程 Python套接字编程
Sep 13 Python
Python格式化输出%s和%d
May 07 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
May 29 Python
python3爬虫获取html内容及各属性值的方法
Dec 17 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
Django框架反向解析操作详解
Nov 28 Python
django配置app中的静态文件步骤
Mar 27 Python
Python中zip函数如何使用
Jun 04 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 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 小乘法表实现代码
2009/07/16 PHP
php中使用GD库做验证码
2016/03/31 PHP
浅析tr的隐藏和显示问题
2014/03/05 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
ES6 Symbol数据类型的应用实例分析
2019/06/26 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
python使用chardet判断字符串编码的方法
2015/03/13 Python
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
Python解析json文件相关知识学习
2016/03/01 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
浅析python协程相关概念
2018/01/20 Python
python如何修改装饰器中参数
2018/03/20 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
详解Flask前后端分离项目案例
2020/07/24 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
cf收人广告词大全
2014/03/14 职场文书
导游欢送词
2015/01/31 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技