用python求1-21个梅森尼数
时间: 2024-11-09 20:19:50 浏览: 24
python实现反向数,回文数,回文素数,反素数,梅森素数,双素数。
梅森数是指形如\(2^p - 1\)的素数,其中\(p\)也是素数。在Python中,我们可以编写一个函数来找出给定范围内的梅森数。首先,我们需要确认\(p\)是否为素数,然后检查\(2^p - 1\)是否也素数。
下面是一个简单的示例,它将遍历从2到21的素数\(p\),计算出对应的\(2^p - 1\),并检查它们是否是梅森数:
```python
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def mersenne_numbers(start, end):
mersenenumbers = []
for p in range(start, end):
if is_prime(p) and is_prime(2 ** p - 1):
mersenenumbers.append(2 ** p - 1)
return mersenenumbers
mersenne_range = list(range(2, 22))
mersenne_nums_in_range = mersenne_numbers(*mersenne_range)
print("小于等于21的梅森数有:", mersenne_nums_in_range)
阅读全文