本文实例讲述了Python实现的寻找前5个默尼森数算法。分享给大家供大家参考,具体如下:
找前5个默尼森数。
若P是素数且M也是素数,并且满足等式M=2**P-1,则称M为默尼森数。例如,P=5,M=2**P-1=31,5和31都是素数,因此31是默尼森数。
python2代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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]
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/sxingming/article/details/51317602