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=' ')