埃拉托色尼筛选法python实现

埃拉托色尼筛选法求一定范围内自然数中的素数:

1、首先取得大于2的所有自然数的数列。

2、在数列中去掉所有大于2并且可以被2整除的数字,得到新数列。

3、在新数列中去掉所有比第一位大但是可以被第一位数整除的数字,得到新数列。

4、反复执行步骤3即可得到所有的素数。


#生成一个3开始的奇数数列
def odd_iter():
    n = 1
    while True:
        n = n + 2
        yield n


#过滤器
def prime_filter(n):
    return lambda x:x % n > 0


#求素数
def prime():
    yield 2
    i = odd_iter()
    while True:
        n = next(i)
        yield n
        i = filter(prime_filter(n), i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值