经典程序设计问题:找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2**P-1,则称M为默尼森数。例如,P=5,M=2**P-1=31,5和31都是素数,因此31是默尼森数。
# -*- coding: utf-8 -*-
"""
Spyder zrex
This is a temporary script file.
"""
from math import sqrt
def is_prime(n):
if n == 1:
return False
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
return False
return True
def is_monisen(n):
m = 2 ** n - 1
if is_prime(m):
return True
if __name__ == "__main__":
monisen = []
for n in range(1,20):
if is_prime(n):
if is_monisen(n):
monisen.append(2**n-1)
print (monisen)
原创文章,作者:Tina,如若转载,请注明出处:https://python.01314.cn/201712482.html