Python - 寻找第6个默尼森数
'''
寻找第6个默尼森数
经典程序设计问题:找第n个默尼森数。P是素数且M也是素数,并且满足等式M=2**P-1,则称M为默尼森数。例如,P=5,M=2**P-1=31,5和31都是素数,因此31是默尼森数。
'''
# 判断是否为素数
def fun(num):
for i in range(2,num):
if num%i == 0:
return False
return True
# 求出莫尼森数的个数
def fun1(num):
num_val = 1
for i in range(num):
while True:
num_val+=1
if fun(num_val):
num_val_1 = 2**num_val-1
# 打印莫尼森数
if fun(num_val_1):
print('{},{}'.format(num_val,num_val_1))
i+=1
break
# 求出6个莫尼森数并打印
fun1(6)
runfile('C:/Users/Administrator/.spyder-py3/temp.py', wdir='C:/Users/Administrator/.spyder-py3')
2,3
3,7
5,31
7,127
13,8191
17,131071