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 相关文章推荐
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 Python
Python、PyCharm安装及使用方法(Mac版)详解
Apr 28 Python
python画柱状图--不同颜色并显示数值的方法
Dec 13 Python
Python3几个常见问题的处理方法
Feb 26 Python
Python爬取破解无线网络wifi密码过程解析
Sep 17 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
python 日志 logging模块详细解析
Mar 31 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
python实现计算图形面积
Feb 22 Python
pytorch中的numel函数用法说明
May 13 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 自定义错误处理函数trigger_error()
2013/03/26 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
Vue计算属性的使用
2017/08/04 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
Three.js基础学习教程
2017/11/16 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
Vuex入门到上手教程
2018/06/20 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
python读取ini配置文件过程示范
2019/12/23 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
德国电子商城:ComputerUniverse
2017/04/21 全球购物
电子商务专业个人的自我评价
2013/12/19 职场文书
导师工作推荐信
2015/03/27 职场文书
物资采购管理制度
2015/08/06 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL