题解 | #筛选法求素数#

筛选法求素数

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 的个数

全部评论

相关推荐

投递拓竹科技等公司10个岗位
点赞 评论 收藏
分享
07-23 12:04
门头沟学院 Java
现在是很缺人吗
码农索隆:缺分母,不缺分子,这样好作为炫耀的资本
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 22:48
牛马人的牛马人生:建议就是把北邮几个字放大就行了。北邮本硕按理来说完全不用担心啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务