筛选素数_python3

筛选法求素数

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

N = 101
pl = list(range(2,N))
pn = [0]*N
for i in range(2, N):
    pn[i] = pn[i-1] + 1 if pl.count(i) > 0 else pn[i-1]
    for j in range(pn[i]):
        if i*pl[j] >= N:
            break
        pl.remove(i*pl[j])
        if not (i % pl[j]):
            break

while True:
    try:
        n = int(input())
        print(' '.join(str(i) for i in pl[:pn[n]]))
        print(n - 1 - pn[n])
    except EOFError:
        break
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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