当前位置: 高中信息技术 / 综合题
  • 1. (2023高二上·浙江期中) 筛法求素数。埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单鉴定素数的算法。要得到自然数 n 以内的全部素数,必须把不大于根号 n 的所有素数的倍数剔除,剩下的就是素数。

    算法思想:先用 2 去筛,即把 2 留下,把 2 的倍数剔除掉;再用下一个质数,也就是 3 筛,把3 留下,把 3 的倍数剔除掉;接下去用下一个质数 5 筛,把 5 留下,把 5 的倍数剔除掉;不断重复下去……

    现在使用埃氏筛法求 1~n 之间的素数个数,代码如下:

    n=int(input())

    a=[1]*(n+1)

    a[0],a[1]=0,0 #标记小于 2 的数, 0 表示非素数,1 表示素数

        ①    i=2

    while i<=n:

        if    ②   :

            for j in range(2*i,n+1,i):

                a[j]=0

        i+=1

    for i in range(n+1):

           ③    print(num)

    1. (1) 若输入的值为 20,则输出为
    2. (2) 请在划线处填入合适的代码。

        ②  ③ 

微信扫码预览、分享更方便