题解 | #筛选法求素数#

筛选法求素数

http://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a

思路:

  • 题目要求筛选法,我们用两个for循环,遍历除数和被除数就ok了,注意,被除数取值范围下限为除数
  • 题目要求统计2之后被删除的元素个数,用循环外的计数变量,每删除一次项目就递增1,来计数
a = int(input())
li = list(range(3, a+1))#转成不含2的整数列表
flag=0#flag用来计数2之后清零个数
for x in range(2, a+1):#for x 遍历循环除数
    for y in li[x-2:]:#for y 遍历循环被除数,范围为x-a(x-2是因为3的索引是0,比如3又不能取到3,所以-2)
        if y % x == 0:
            li.remove(y)#如果y能被整除就去掉y
            flag+=1#计数器+1

print(2,*li)#解包,加上2打印出来
print(flag)#打印2之后被清0 的个数

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务