美文网首页
埃氏筛法

埃氏筛法

作者: AttackCoder | 来源:发表于2018-05-10 09:07 被阅读0次

    计算素数的一个方法:埃氏筛法

    1.构造一个从3开始的奇数列

    def _odd_iter():

        n=1

        while True:

            n+=2

            yield n

    2.筛选函数

    def _not_divisible(d):

        return lambda x:x % d > 0

    3.打印函数

    def primes():

        yield 2

        it=_odd_iter()

        while True:

            c=next(it)

            yield c

            it=filter(_not_divisible(c),it)

    for x in primes():

        if x<20:

            print(x)

        else:

            break

    相关文章

      网友评论

          本文标题:埃氏筛法

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