Python实现高效求解素数代码实例


Posted in Python onJune 30, 2015

素数是编程中经常需要用到的。

作为学习Python的示例,下面是一个高效求解一个范围内的素数的程序,不需要使用除法或者求模运算。

#coding:utf-8    #设置python文件的编码为utf-8,这样就可以写入中文注释
def primeRange(n):
  myArray=[1 for x in range(n+1)] ##列表解析,生成长度为(n+1)的列表,每个数值都为1
  myArray[0]=0
  myArray[1]=0
  startPos=2
  while startPos <= n:
    if myArray[startPos]==1:
      key=2
      resultPos = startPos * key #可知startPos的整数倍都不是素数,设置startPos的整数倍的位置为0表示非素数
      while resultPos <= n:
        myArray[resultPos] =0
        key += 1
        resultPos = startPos *key
    startPos += 1

  resultList=[]  ##将最终的素数保存在resultList列表返回
  startPos=0
  while startPos <= n:
    if myArray[startPos] == 1:
      resultList.append(startPos)
    startPos += 1
  return resultList

numString=raw_input("Input the Range(>3):")
numInt=int(numString)
if numInt <= 3:
  print "The Number Need to be greater than 3"
else:
  primeResult=primeRange(numInt)
  print "The Result is:",primeResult
Python 相关文章推荐
python将字符串转换成数组的方法
Apr 29 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
Oct 16 Python
Python imread、newaxis用法详解
Nov 04 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 Python
Python json解析库jsonpath原理及使用示例
Nov 25 Python
Python机器学习之KNN近邻算法
May 14 Python
python实现DES加密解密方法实例详解
Jun 30 #Python
python实现的系统实用log类实例
Jun 30 #Python
python实现在windows服务中新建进程的方法
Jun 30 #Python
python实现线程池的方法
Jun 30 #Python
python实现的简单FTP上传下载文件实例
Jun 30 #Python
编写Python CGI脚本的教程
Jun 29 #Python
Python访问纯真IP数据库脚本分享
Jun 29 #Python
You might like
php操作SVN版本服务器类代码
2011/11/27 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
PHP Reflection API详解
2015/05/12 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python中的编码知识整理汇总
2016/01/26 Python
Python实现的中国剩余定理算法示例
2017/08/05 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
如何查找网页漏洞
2016/06/22 面试题
三八节标语
2014/06/27 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
使用python创建股票的时间序列可视化分析
2022/03/03 Python
Python数据处理的三个实用技巧分享
2022/04/01 Python