编写函数,生成10000以内的所有梅森质数。梅森质数是指满足2的p次方减1的形式的质数,其中p是素数。python
时间: 2024-12-12 11:18:20 浏览: 9
自动化1903-卢韬-20194127-实验一1
编写一个Python函数来找出10000以内的所有梅森质数,你可以参考以下代码:
```python
def is_mersenne_prime(p):
"""
检查是否为梅森质数
"""
# 验证是否为素数
if p <= 1 or (p % 2 == 0 and p != 2): # 除了2外,偶数不是梅森质数
return False
# 对于奇数p,检查2**p - 1是否为质数
mp = pow(2, p, p) # 使用取模运算高效计算
while mp != 1: # 如果mp除以p余数不为1,说明不是梅森质数
mp = (mp * 2) % p
return True
def find_mersenne_primes(limit=10000):
"""
找出10000以内的梅森质数
"""
mersenne_primes = []
for p in range(2, int(limit ** 0.5) + 1): # 只需测试到limit的平方根即可
if is_mersenne_prime(p):
mersenne_primes.append(2 ** p - 1)
return mersenne_primes
# 输出结果
mersenne_primes_10k = find_mersenne_primes()
print(f"10000以内的梅森质数有: {mersenne_primes_10k}")
阅读全文