题解 | #筛选法求素数#

筛选法求素数

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))
      
全部评论

相关推荐

Java转测开第一人:这种就是饼 把应届当廉价劳动力用完然后丢掉
你觉得今年秋招难吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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