MOOC 寻找第n个默尼森数

代码格式如下:
def prime(num):

def monisen(no):
… …
return xxx

print(monisen(int(input()))) # 此处输入由系统自动完成不需要自己输入,只要写这样一条语句即可(3分)
题目内容:

找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数。例如,P=5,M=2P-1=31,5和31都是素数,因此31是默尼森数。

输入格式:

按提示用input()函数输入

输出格式:

int类型

输入样例:

4

输出样例:

127


def prime(num):	# 检验素数
    k = int(pow(num,0.5))
    flag = 1
    for i in range(2,k+1):
        if num % i ==0:
            return False
            break
    if flag:
        return True

def monisen(no):
    i = 1
    primeno = 3	# 因为3是第一个默尼森数,就从3开始算起
    while i <no:
        if prime(primeno) and prime(2**primeno-1):
            i +=1
        primeno+=2
    return 2**(primeno-2)-1
print(monisen(int(input())))

猜你喜欢

转载自blog.csdn.net/byakki/article/details/88538261
今日推荐