寻找所有的素数的python实现
2015-07-09 21:09
459 查看
寻找所有的素数的python实现
寻找素数也是一个在学习python的一个简单题目。涉及到的知识点是:python内置函数filter()的应用。思路如下:
在全部自然数中,先取出素数2,然后过滤掉以2为因子的所有数(因为这些数都不是素数)得到新的序列
然后在新序列中取出素数 3,然后过滤掉以3为因子的所有数得到一个新的序列
然后在新序列中去除第一个数,然后过滤掉以这个数为因子的所有数。
按上面的步骤做下去即可取出所有的数
实现代码如下:
#coding=UTF-8 #寻找所有的素数 def not_div(n): return lambda x:x%n!=0 def pro_odd():#从3开始的奇数生成器 n=1 while True: n=n+2 yield n def primes():#定义一个生成器,不断返回下一个素数 yield 2 it=pro_odd() while True: n=next(it) yield n it=filter(not_div(n),it) #测试 for i in primes():#由于是无穷序列,下面对输出就进行了一个限制 if(i<300): print(i) else: break
相关文章推荐
- Duck Type in Python
- python中strip()函数的理解
- Beginning Python From Novice to Professional (4) - 演示样本格式字符串
- python 多线程的一点东西
- Python: The _imagingft C module is not installed错误的解决
- 将字符串转化为数字的python实现
- Python os.chmod()
- python基本环境配置
- cmd下不能运行python解决方法
- Python使用opencv
- Python+django开发环境搭建
- 同一台机器安装多个python版本
- python之字符串
- python 自动下载网站相关附件
- 把变量里的值导入 某文件
- Python学习笔记
- python 中文乱码问题深入分析
- Python中的字符串处理
- python实现1、使用迭代器实现斐波那契数列;2、从迭代器得到序列
- Python 改变和获取当前工作目录