寻找第n个默尼森数。
经典程序设计问题:找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2**P-1,则称M为默尼森数。例如,P=5,M=2P-1=31,5和31都是素数,因此31是默尼森数。**
输入格式:按提示用input()函数输入
输出格式:int类型
输入样例:4
输出样例:127
import math
def isPrime(n):
if n <= 1:
return 0
i = 2
while i*i <= n:
if n % i == 0:
return 0
i += 1
return 1
def monisen(No_monisen):
counter_monisen = 0
P_num = 1
while counter_monisen != No_monisen :
P_num = P_num+1
P_isPrime = isPrime(P_num)
if(P_isPrime == 1):
M_num= math.pow(2,P_num) - 1
M_num = int(M_num)
M_isPrime = isPrime(M_num)
if(M_isPrime == 1):
if ( counter_monisen+1 ==No_monisen):
return(M_num)
counter_monisen += 1
print(monisen(int(input())))