Python 素数判断;以及默尼森数
1. 素数/质数
只能被2或者本身整除的正整数。
2. 默尼森数
P是素数且M也是素数,并且满足等式M=2^P-1,则称M为默尼森数。
编程小要求: 输出前5个默尼森数
1)最外层循环找素数
中间层循环对已有素数表找默尼森数
内层循环对某个素数检查M=2^P-1
1 # -*- coding: cp936 -*- 2 from math import sqrt 3 4 # 素数初始化 5 p=[] 6 # 默尼森数表初始化 7 mns=[] 8 9 def is_sushu(x): 10 if x <= 1: 11 return False 12 13 for i in range(2, int(sqrt(x)) + 1): 14 if x % i == 0: 15 return False 16 return True 17 18 for j in range(1,10000): #j 循环找素数 19 if is_sushu(j)==True: 20 p.append(j) 21 22 k=len(p) 23 24 for k1 in range(1,k): #k1 循环已有素数表 25 if len(mns)==5: 26 break 27 28 for k2 in range(0,k1): 29 if len(mns)==5: 30 break 31 32 if p[k1]==2**p[k2]-1: 33 mns.append(p[k1]) 34 35 else: 36 continue 37 38 #print len(p) 39 print mns
2)
posted on
2016-04-22 15:01 Suckseedeva 阅读(
...) 评论(
...) 编辑 收藏