用筛法求100以内的素数python
时间: 2023-05-01 18:06:28 浏览: 67
以下是使用筛法求100以内的素数的Python代码:
```python
n = 100
is_prime = [True] * (n+1)
is_prime[0] = is_prime[1] = False
for i in range(2, int(n ** 0.5) + 1):
if is_prime[i]:
for j in range(i*i, n+1, i):
is_prime[j] = False
primes = [i for i in range(n+1) if is_prime[i]]
print(primes)
```
输出结果为:
```
[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]
```
相关问题
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以内的素数。
编写函数使用数组,用筛法求100以内素数。
好的,下面是使用筛法求100以内素数的函数:
```python
def sieve_of_eratosthenes(n):
"""
使用筛法求n以内的素数
"""
is_prime = [True] * (n+1) # 初始化所有数为素数
is_prime[] = is_prime[1] = False # 和1不是素数
for i in range(2, int(n**.5)+1):
if is_prime[i]:
# 将i的倍数标记为非素数
for j in range(i*i, n+1, i):
is_prime[j] = False
# 返回所有素数的列表
return [i for i in range(n+1) if is_prime[i]]
```
这个函数接受一个整数n作为参数,返回一个列表,其中包含所有小于等于n的素数。函数使用了筛法的思想,首先将所有数都标记为素数,然后从2开始,将2的倍数标记为非素数,再从3开始,将3的倍数标记为非素数,以此类推,直到根号n为止。最后,遍历所有数,将素数加入到结果列表中。