寻找第n个默尼森数
代码格式如下:
def prime(num):
...
def monisen(no):
… …
return xxx
print(monisen(int(input()))) #此处不需要自己输入,只要写这样一条语句即可,主要完成monisen()函数(4分)
经典程序设计问题:找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2**P-1,则称M为默尼森数。例如,P=5,M=2**P-1=31,5和31都是素数,因此31是默尼森数。
输入格式:按提示用input()函数输入
输出格式:int类型
输入样例:4
输出样例:127
import math
def prime(num):
l1 = [2]
for i in range(3, int(math.sqrt(num)+1), 2):
if num % i ==0:
return False
return num
def monisen(no):
l2 = [2]
a = 3
while 1 :
P = prime(a)
if P == False:
a = a+2
continue
M = 2**P-1
if prime(M) == False:
a = a+2
else:
l2.append(M)
a+=2
if len(l2) == no:
break
return l2[-1]
print(monisen(int(input(""))))