编写一个程序,求出所有m到n之间的绝对素数
时间: 2024-11-25 08:18:23 浏览: 6
编程求解1到n之间所有素数之和
编写一个程序来寻找从m到n之间的所有绝对素数,可以使用一种名为“埃拉托斯特尼筛选法”的经典算法,特别是针对较大的范围,这是一种高效的找到质数的方式。以下是Python的一个简单实现:
```python
def is_prime(n):
if n <= 1:
return False
if n == 2:
return True
if n % 2 == 0:
return False
i = 3
while i * i <= n:
if n % i == 0:
return False
i += 2
return True
def absolute_primes(m, n):
primes = [True] * (n + 1)
primes[0], primes[1] = False, False
for i in range(2, int(n**0.5) + 1):
if primes[i]:
for j in range(i*i, n+1, i):
primes[j] = False
result = []
for num in range(m, n + 1):
if primes[num]: # 只保留大于0的素数,也就是绝对素数
if num > 0:
result.append(num)
return result
# 示例:获取1到20之间的绝对素数
result = absolute_primes(1, 20)
print(f"1到20之间的绝对素数是: {result}")
阅读全文