python 寻找前5个默尼森数

来源:互联网 发布:docker web mysql 编辑:程序博客网 时间:2024/06/04 19:54

找前5个默尼森数。

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

python2代码如下:

from math import sqrt
 def isPrime(n):
    'judge whether a positive integer is a prime number!'
    if n==1:
        return False
    k=int(sqrt(n))
    for i in range(2,k+1):
        if n%i==0:
            return False
    return True
     

def getMonisen(n):
    count=0
    l=[]
    P=2#最小的素数是2,因此P初值为2
    while True:
        if isPrime(P):
            M=2**P-1
            if isPrime(M):
                l.append(M)
                count+=1
                if count==n:
                    break
        P+=1
    return l
     
l=getMonisen(5)
print l

运行程序,结果如下:

[3, 7, 31, 127, 8191]


1 0
原创粉丝点击