输出n到m之间的素数,python
时间: 2024-10-09 16:01:58 浏览: 30
在Python中,你可以使用Sieve of Eratosthenes算法来生成指定范围内的所有素数。这是一种古老而有效的找到一定范围内所有质数的方法。下面是一个简单的函数实现:
```python
def sieve_of_eratosthenes(n, m):
primes = [True] * (m + 1) # 初始化一个布尔列表,假设0到m都是质数
primes[0], primes[1] = False, False # 0和1不是质数
for num in range(2, int(m**0.5) + 1): # 只需要检查到根号m
if primes[num]:
for multiple in range(num*num, m+1, num): # 把num的倍数标记为非质数
primes[multiple] = False
for prime in range(n, m + 1): # 打印n到m之间的质数
if primes[prime]:
print(prime)
# 调用函数
sieve_of_eratosthenes(10, 30)
```
相关问题
python输出m到n之间的素数
可以使用以下代码实现:
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def print_primes(m, n):
for i in range(m, n+1):
if is_prime(i):
print(i)
print_primes(2, 100)
```
在这个代码中,我们首先定义了一个 `is_prime()` 函数,用于判断一个数是否为素数。然后我们定义了一个 `print_primes()` 函数,用于输出区间 `[m, n]` 中的所有素数。最后我们调用 `print_primes(2, 100)` 来输出 2 到 100 之间的素数。
输出m到n之间的所有素数,包括m和n。(100<m,n>1000)用Python写
以下是Python代码实现:
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
m, n = 100, 1000
for i in range(m, n + 1):
if is_prime(i):
print(i)
```
这段代码的实现方法是先定义一个 `is_prime()` 函数来判断一个数是否为素数。然后在主程序中,从 `m` 到 `n` 的所有数都逐个进行判断,如果是素数就输出。
阅读全文