【循环嵌套】编写程序,输入正整数n,(1,n]之间所有的素数。
例如:输入:10
输出:2 3 5 7
def get_prime_list(n):返回n以为(包括n)的所有素数构成的列表
在main中读入用户输入的整数n,并按照格式要求输出结果
```python
# def get_prime_list(n):
# lst = []
# print(2, end=' ')
# for i in range(0, n + 1):
# lst.append(0)
#
# for i in range(3, n + 1, 2):
# for j in range(i + i, n + 1, i):
# lst[j] = 1
#
# for i in range(3, n + 1, 2):
# if (lst[i] == 0):
# print(i, end=' ')
#
#
# if __name__ == '__main__':
# get_prime_list(int(input()))
上面这个方法有点不对,好像并不是筛法求素数,只是一种求素数的方法,筛法请看下面的代码
def get_prime_list(n):
lst_num = list(range(2,n+1))
lst_prime = []
while lst_num:
m = lst_num.pop(0)
lst_prime.append(m)
i = 0
while i<len(lst_num):
if lst_num[i]%m == 0:
lst_num.pop(i)
else:
i+=1
return lst_prime
if __name__ == '__main__':
n = int(input())
print(*get_prime_list(n))
如果有更好的方法或发现文中有错误请评论指正。