埃氏筛法求素数-Python

来源:互联网 发布:ipad手绘软件 编辑:程序博客网 时间:2024/05/16 01:04
def _not_divisible(n): #是否整除    return lambda x: x%n > 0def _odd_iter(): #创建奇数序列    n = 1    while True:        n += 2        yield ndef primes(end_num): #end_num范围内的素数    if end_num < 2:        return    yield 2    it = _odd_iter()    while True:        n = next(it)        if n > end_num:            break        yield n        it = filter(_not_divisible(n),it)


PS: lambda 返回函数,:前的x 为参数

每循环获取下个素数,将列表中该素数的所有倍数筛选掉(留下不被该素数的数)

0 0
原创粉丝点击