0
点赞
收藏
分享

微信扫一扫

素数筛 python

朱小落 2022-02-28 阅读 195
python算法

算法思路:

一串数字2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

我们认为都是素数

1、取出最靠前的素数:2

由2开始向后,将所有2的倍数标记为不是素数。

得到        2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

2、寻找下一个未被标记的数

由3 开始向后,将所有3 的倍数标记为不是素数。

3、如此循环。

最终能得到一个范围之间所有数的状态。

代码

def sss(n):
    k = [1 for i in range(n+1)]
    for i in range(2, n+1):
        if k[i]:
            print(i)
            for j in range(i, n+1):
                if j % i == 0:
                    k[j] = 0

sss(200)

代码中,我们利用下标表示数本身,其中的内容表示是否为素数。

举报

相关推荐

0 条评论