题解 | #筛选法求素数#

筛选法求素数

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

很难啊, 难点主要是后半段,需要把初始的数组反向遍历,这样pop就不会影响原来的index,其他的就比较简单了

n = int(input())
lines = [i for i in range(2,n+1)]
num1 = len(lines)
for i in range(2,n+1):
    if i not in lines:
        continue
    else:
        start=lines.index(i)
        for j in range(len(lines)-1,start,-1):#难点,此处需要把初始的数组反向遍历,这样pop就不会影响原来的index,其他的就比较简单了
            if lines[j]%i==0:
                lines.pop(j)
print(" ".join([str(i)for i in lines] ))
print(num1-len(lines))
      
全部评论

相关推荐

01-19 12:48
门头沟学院 C++
只想搞钱的鸽子很喜欢...:混账是很多的,还有那些在自己风华正茂的年纪说风凉话讥讽那些下岗前员工的。这些人都是现在职场环境这么烂的帮凶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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