python找出正整数m和n之间(n不小于m)的所有真素数。输入一行内输入两个数m和n
时间: 2024-09-26 22:11:34 浏览: 80
Python例题(一) 输入一个正整数判断是不是素数
在Python中,你可以使用Sieve of Eratosthenes算法来找出正整数m和n之间的所有真素数。这是一个古老而有效的计算质数的算法。以下是编写的一个函数示例:
```python
def find_primes(m, n):
# 确保 m 是最小值,并将 0 和 1 排除在外,因为它们不是质数
if m < 2:
m = 2
primes = [True] * (n + 1)
primes[0], primes[1] = False, False
for p in range(2, int(n**0.5) + 1): # 遍历到 n 的平方根
if primes[p]: # 如果 p 是质数
for i in range(p*p, n + 1, p): # 将 p 的倍数标记为非质数
primes[i] = False
result = [p for p in range(m, n+1) if primes[p]] # 返回在范围内的是质数
return result
# 获取用户输入并调用函数
m, n = map(int, input("请输入两个正整数,m 和 n (n>=m): ").split())
primes_in_range = find_primes(m, n)
print(f"{m} 到 {n} 之间的真素数有: ", primes_in_range)
阅读全文