4077: 练5.6 筛选法找质数

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:18 解决:5

题目描述

用筛法求出n(2≤n≤1000)以内的全部质数。

输入

输入n。

输出

输出若干个数字,用一个空格隔开,表示由小到大的质数。

样例输入 复制

10

样例输出 复制

2 3 5 7

提示

import math
n=int(input()) #输入个数n 
#设置一个长度为n+1的列表,列表元素的初值是True
prime= [True]*(n+1)
prime[1]=False
maxn=int(math.sqrt(n)+1)
for i in range (2,maxn):
    if prime[i]:
        for j in range(2,n//i+1):
            #i*j是合数
            prime[i*j]=False
for i in range(2,n+1):
    if prime[i]:
        print(i,end=' ')