美文网首页
一种统计素数的方法

一种统计素数的方法

作者: 52_St | 来源:发表于2018-06-08 21:49 被阅读58次
    import math
    
    def sieve(size):
        # 初始化一个待判断统计列表,用于表示该位置的索引是否为素数
        sieve = [True] * size
        # 众所周知,0和1都不是素数,所以为False
        sieve[0] = False
        sieve[1] = False
        # 循环找到所有的非素数,赋值False
        for i in range(2, int(math.sqrt(size)) + 1):
            k = i * 2
            while k < size:
                sieve[k] = False
                k += i
        # 统计所有为True的元素个数,也就是素数的个数
        return sum(1 for x in sieve if x)
    # 一千亿之内的素数个数
    # 4118054813
    print(sieve(100000000000))
    

    相关文章

      网友评论

          本文标题:一种统计素数的方法

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