用python尋找莫尼森數
阿新 • • 發佈:2018-12-12
P是素數且M也是素數,並且滿足等式M=2**P-1,則稱M為默尼森數。例如,P=5,M=2**P-1=31,5和31都是素數,因此31是默尼森數。
from math import sqrt def isprime(x): '''判斷x是否為質數''' if x == 1: return False k = int(sqrt(x)) for i in range(2, k+1): if x % i ==0: return False return True def monisen(monisen_n): '''尋找第monisen_n個莫尼森數''' P = 0 count = 1 while count <= monisen_n: P += 1 M = 2**P - 1 if isprime(P) and isprime(M): count += 1 print(P,M) monisen(5)