python求解小于100的所有素数
时间: 2023-11-09 11:48:28 浏览: 89
用筛选法可以求解小于100的所有素数。该方法的思路是先假设所有的数都是素数,然后从2开始,将该数的所有倍数标记为合数。最后,剩下的未被标记的数就是素数。
在Python中,可以使用以下代码实现:
```python
def find_prime(n):
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 = []
for i in range(2, n+1):
if is_prime[i]:
primes.append(i)
return primes
primes = find_prime(100)
print(primes)
```
以上代码将会输出小于100的所有素数:[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]。
相关问题
求解小于100的所有素数
筛选法是一种用来求解小于给定数字的所有素数的方法。它的思想是,首先假设所有的数都是素数,然后从2开始,将它的倍数标记为合数,直到遍历完所有数字。最后,剩下的没有被标记为合数的数就是素数。对于求解小于100的所有素数,可以按照以下步骤进行计算:
1. 创建一个长度为100的布尔数组is_prime,初始值都设为True,表示所有的数都是素数。
2. 从2开始,遍历数组is_prime,对于每一个数i,如果is_prime[i]为True,则将i的所有倍数(除了i本身)都标记为False,即is_prime[j] = False,其中j为i的倍数。
3. 遍历完整个数组后,剩下的数对应的is_prime值为True的就是素数。
4. 将所有素数保存在一个列表中,即prime_list,其中小于100的素数就是我们要求解的结果。
代码示例(Python):
```python
n = 100
is_prime = [True] * n
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, i):
is_prime[j] = False
prime_list = [i for i in range(n) if is_prime[i]]
```
python使用筛选法求解小于n的素数
在Python中,我们可以使用筛选法(埃拉托斯特尼筛法,Sieve of Eratosthenes)来找到小于某个给定整数n的所有素数。这是一种古老而高效的算法,步骤大致如下:
1. 创建一个从2到n的布尔列表,初始化所有数字为True,表示它们都可能是素数。
2. 开始从最小的质数2开始,将它的倍数标记为非素数(即将其对应的布尔值设为False)。因为除了它自身,不会有其他的因子。
3. 接着找出下一个未被标记的数(也就是当前最小的质数),重复步骤2,直到遍历完所有小于等于√n的数。
4. 遍历结束后,列表中仍然为True的元素就是素数。
以下是Python代码实现:
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n + 1)
p = 2
while p * p <= n:
if primes[p]:
for i in range(p * p, n + 1, p):
primes[i] = False
p += 1
prime_numbers = [i for i, is_prime in enumerate(primes) if is_prime]
return prime_numbers
# 示例:找到小于50的素数
n = 50
result = sieve_of_eratosthenes(n)
print("小于{}的素数有:{}".format(n, result))
阅读全文