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 相关文章推荐
详解Django框架中的视图级缓存
Jul 23 Python
Python 装饰器深入理解
Mar 16 Python
python实时分析日志的一个小脚本分享
May 07 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
Python中bisect的用法及示例详解
Jul 20 Python
python3中for循环踩过的坑记录
Dec 14 Python
Python实现简单的2048小游戏
Mar 01 Python
python 中的@运算符使用
May 26 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
Jun 05 Python
python tqdm用法及实例详解
Jun 16 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
桌面中心(四)数据显示
2006/10/09 PHP
给初学PHP的5个入手程序
2006/11/23 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
Display SQL Server Login Mode
2007/06/21 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
Python的subprocess模块总结
2014/11/07 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
python实现PCA降维的示例详解
2020/02/24 Python
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
KOHLER科勒美国官网:国际著名卫浴橱柜领先品牌
2020/06/27 全球购物
营销计划书
2015/01/17 职场文书
店铺转让协议书
2015/01/29 职场文书
银行求职信模板
2015/03/20 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python
Go语言带缓冲的通道实现
2021/04/26 Golang
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android