编写程序使用筛选法查找并输出小于1000的素数
时间: 2023-05-21 08:05:21 浏览: 178
以下是使用筛选法查找并输出小于1000的素数的代码示例(使用Python语言编写):
```python
def find_prime_numbers(n):
"""使用筛选法查找并输出小于n的素数"""
prime_numbers = []
# 初始化一个长度为n的列表,元素为True
is_prime = [True] * n
for i in range(2, n):
if is_prime[i]:
prime_numbers.append(i)
# 将i的倍数全部标记为False
for j in range(i*i, n, i):
is_prime[j] = False
return prime_numbers
prime_numbers = find_prime_numbers(1000)
print(prime_numbers)
```
输出结果为:
```
[2, 3, 5, 7, 11, 13, ..., 983, 991, 997]
```
其中,首先初始化一个长度为n的列表,元素为True,然后从2开始遍历该列表,如果当前元素为True,则说明它是素数,将其添加到素数列表中,并将它的倍数全部标记为False,最后返回素数列表即可。
相关问题
编写程序,使用筛选法查找并输出小于1000的所有素数
以下是使用筛选法查找并输出小于100的所有素数的程序:
```python
# 初始化一个长度为100的列表,全部赋值为True
is_prime = [True] * 100
# 和1不是素数,将其标记为False
is_prime[] = is_prime[1] = False
# 从2开始遍历到999,将其倍数标记为False
for i in range(2, 100):
if is_prime[i]:
for j in range(i * i, 100, i):
is_prime[j] = False
# 输出所有标记为True的数,即素数
for i in range(2, 100):
if is_prime[i]:
print(i)
```
程序的思路是先初始化一个长度为100的列表,全部赋值为True,表示所有数都是素数。然后从2开始遍历到999,将其倍数标记为False,表示它们不是素数。最后输出所有标记为True的数,即素数。
编写程序,使用筛选法查找并输出小于1000的所有素数。
以下是使用筛选法查找小于1000的所有素数的 Python 代码:
```python
def find_primes(n):
prime = [True] * (n+1)
p = 2
while p * p <= n:
if prime[p]:
for i in range(p * 2, n+1, p):
prime[i] = False
p += 1
return [p for p in range(2, n) if prime[p]]
print(find_primes(1000))
```
该算法的思路是先将所有数都标记为素数(True),从2开始,将其所有倍数标记为合数(False),然后再找到下一个素数继续重复此过程,直到找到所有小于n的素数为止。最后返回所有标记为素数的数。
阅读全文