美文网首页
使用埃氏筛法获取质数

使用埃氏筛法获取质数

作者: Breezes | 来源:发表于2021-04-05 15:40 被阅读0次

埃氏筛法步骤:

1.把序列中的1删除,因为1既不是质数也不是合数
2.读取序列中的第一个数字2,并把序列中2的倍数删除
3.读取序列中的第一个数字3,并把3的倍数删除
4.读取第一个数字5,并把5的倍数删除
...

使用python 的高级函数filter()实现⬇️

def _odd_iter():#从3开始的奇数序列
    n = 1
    while True:
        n = n + 1
        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)#构造新的序列

相关文章

  • 使用埃氏筛法获取质数

    埃氏筛法步骤: 1.把序列中的1删除,因为1既不是质数也不是合数2.读取序列中的第一个数字2,并把序列中2的倍数删...

  • 204. 计数质数

    204. 计数质数 最简单的质数筛埃式筛法

  • 埃氏筛

    埃拉托斯特尼筛法,简称埃氏筛,一种古老且简单的用来找出一定范围内所有的质数的算法。公元前250年由希腊数学家埃拉托...

  • 素数相关问题练习 C++

    辗转相除 素数判定 埃氏筛法

  • 质因子分解(素数埃氏筛法)[PAT A1059]

    埃氏筛法原理质因子分解结论

  • 埃筛

    埃筛 给定一个整数N,求出1~N之间的所有质数,称为质数的筛选问题。埃筛线筛都是用于解决这个问题的算法。埃筛的思想...

  • 质数判断与埃氏筛

    质数判断 我们来看这么一道问题: 给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)...

  • 埃氏筛法

    计算素数的一个方法:埃氏筛法 1.构造一个从3开始的奇数列 def _odd_iter(): n=1 whil...

  • 埃氏筛法

    首先,列出从2开始的所有自然数,构造一个序列: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1...

  • 判断素数-埃氏筛法的详解

    埃氏筛法 一个判断素数的高效算法 关于埃氏筛法的百度百科解释在这里埃拉托斯特尼筛法,当然我不可能给个百度百科的解释...

网友评论

      本文标题:使用埃氏筛法获取质数

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