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数据类型转换函数总结
Mar 11 Python
常见的在Python中实现单例模式的三种方法
Apr 08 Python
Python中使用装饰器时需要注意的一些问题
May 11 Python
在Python程序中操作文件之isatty()方法的使用教程
May 24 Python
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
python计算导数并绘图的实例
Feb 29 Python
python3的pip路径在哪
Jun 23 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 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模块memcache和memcached区别分析
2011/06/14 PHP
解析isset与is_null的区别
2013/08/09 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
php实现头像上传预览功能
2017/04/27 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
2014/01/27 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
layui字体图标 loading图标静止不旋转的解决方法
2019/09/23 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
Python科学画图代码分享
2017/11/29 Python
实时获取Python的print输出流方法
2019/01/07 Python
python中rb含义理解
2020/06/18 Python
Django如何实现防止XSS攻击
2020/10/13 Python
python 多线程中join()的作用
2020/10/29 Python
详解pandas赋值失败问题解决
2020/11/29 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
咖啡厅创业计划书范本
2014/01/22 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
质量保证书格式
2015/02/27 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python