欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【python】找第n个默尼森数

程序员文章站 2022-04-06 16:42:23
...

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

 

from math import sqrt
def prime(num):
    if  num == 1:
        return False;
    if  num == 2:
        return True;
    k = int(sqrt(num))+1
    for i in range(2,k):
        if num % i == 0:
            return False;
    return True;

def monisen(no):
    k = 0 ;
    n = 1;
    while(k<no):
        n = n+1;
        if(prime(n)):
            m = 2**n-1
            if(prime(m)):
                k = k+1;
    print(m)
n = int(input())
monisen(n)

 

相关标签: Python 练习