求[n,m]之间所有的素数 用python
时间: 2024-05-01 14:18:44 浏览: 56
以下是Python代码实现:
```python
def find_prime(n, m):
primes = []
for num in range(n, m+1):
if num > 1:
for i in range(2, int(num**(0.5))+1):
if num % i == 0:
break
else:
primes.append(num)
return primes
n = int(input("请输入n:"))
m = int(input("请输入m:"))
print("在[%d,%d]之间的所有素数为:" % (n, m))
print(find_prime(n, m))
```
你可以把n和m设置为你需要的范围,程序会返回在该范围内的所有素数。
相关问题
输出n到m之间的素数,python
在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)
```
求m与n范围内的质数用python
Sure, 可以用 Python 编写程序来求解 m 与 n 范围内的质数,可以使用以下代码实现:
```python
def find_primes(m, n):
primes = []
for num in range(m, n + 1):
if all(num % i != 0 for i in range(2, int(num ** 0.5) + 1)):
primes.append(num)
return primes
```
这个程序中,我们将会使用到 Python 的for 循环 和内置函数 range(),并且使用了 all() 函数来判断质数。首先,for 循环会遍历 m 到 n 范围内的所有数字;然后,我们使用 all() 函数判断当前数字是否是质数,如果它可以被 2 到 sqrt(num) 范围内的整数整除,则它不是质数;否则,就是质数,将其加入 primes 列表中。最后,我们将 primes 列表返回。
如果你想要找到从 1 到 N 的所有质数,可以调用 find_primes(1, N)。注意,当 N 很大时,这个算法的执行时间可能会很长,因为它需要判断每一个数字。你可以尝试使用其他更高效的算法来优化它,以使程序更快。
阅读全文