生成代码(Python)用筛法得到10000以内的全部素数
时间: 2023-05-19 19:01:52 浏览: 52
以下是 Python 代码,可以用筛法得到10000以内的全部素数:
```python
def get_primes(n):
primes = [True] * (n+1)
primes[0] = primes[1] = False
for i in range(2, int(n**0.5)+1):
if primes[i]:
for j in range(i*i, n+1, i):
primes[j] = False
return [i for i in range(2, n+1) if primes[i]]
primes = get_primes(10000)
print(primes)
```
这段代码使用了埃拉托色尼筛法,时间复杂度为 O(n log log n)。
相关问题
python用筛法求100以内的素数
这个问题意思是:用Python筛法求100以内的素数。
答案是:
```python
nums = list(range(2, 101))
primes = []
while nums:
p = nums[0]
primes.append(p)
nums = [n for n in nums if n % p != 0]
print(primes)
```
运行程序即可输出100以内的素数。
python用筛法求100以内的素数,使用列表元素
可以使用以下代码来实现:
```python
# 初始化一个包含100个元素的列表,初始值都为 True
is_prime = [True] * 100
# 将 0 和 1 标记为非素数
is_prime[0] = is_prime[1] = False
# 对于 2 至 99,如果该数为素数,则将其倍数标记为非素数
for i in range(2, 10):
if is_prime[i]:
for j in range(i * i, 100, i):
is_prime[j] = False
# 输出所有素数
for i in range(100):
if is_prime[i]:
print(i, end=' ')
```
运行结果为:
```
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```