美文网首页
Python实现埃拉托色尼筛选素数

Python实现埃拉托色尼筛选素数

作者: Holase | 来源:发表于2017-05-10 16:14 被阅读0次

    埃拉托色尼筛选法的原理很简单:

    1. 选取2为第一个素数
    2. 删除序列中2的倍数
    3. 更新序列中的第一个数字3,删除序列中所有3的倍数
    4. 更新序列中的第一个数字5,删除序列中所有5的倍数
    5. 如上所述,直到需求的范围内所有的数均删除或读取

    代码如下:
    <pre>

    构造一个从3开始的可迭代序列

    def odd_iter():
    n = 1
    while True:
    n = n + 2
    yield n

    构造一个筛选函数

    def _not_divisible(n):
    return lambda x : x % n > 0

    构造一个素数生成器

    def primes():
    yield 2
    it = odd_iter() # 初始序列
    while True:
    n = next(it) # 返回序列的第一个数
    yield n
    it = filter(_not_divisible(n), it) # 构造新序列
    </pre>

    相关文章

      网友评论

          本文标题:Python实现埃拉托色尼筛选素数

          本文链接:https://www.haomeiwen.com/subject/mukgtxtx.html