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采集博客中上传的QQ截图文件
Jul 18 Python
python3.5使用tkinter制作记事本
Jun 20 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 Python
Python 模拟员工信息数据库操作的实例
Oct 23 Python
简单谈谈python基本数据类型
Sep 26 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
Oct 21 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
使用 Python 遍历目录树的方法
Feb 29 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
Mar 27 Python
QML用PathView实现轮播图
Jun 03 Python
教你用Python matplotlib库制作简单的动画
Jun 11 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超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
php实现的RSS生成类实例
2015/04/23 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
利用python求相邻数的方法示例
2017/08/18 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
python3.5绘制随机漫步图
2018/08/27 Python
解决python replace函数替换无效问题
2020/01/18 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
Pytorch转tflite方式
2020/05/25 Python
什么是聚集索引和非聚集索引
2012/01/17 面试题
Java基础面试题
2012/11/02 面试题
自我鉴定写作要点
2014/01/17 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
物流专业自荐信
2014/05/23 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
展览会邀请函
2015/02/02 职场文书
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers