2的67次方减一是不是质数
1.找质数
查找素数有两种方法,一种比较常规:
`print('判断1000以内的素数') for i in range(2,100): flg = 0 for j in range(2,i-1): # if not(i%j): flg = 1 break if(flg == 0): print(i,'是素数') print('Good Bye!!!')`
这种方法会一直找,直到找到 n-1 截至
还有一种:
`import math print(math.sqrt(4)) print(4**(0.5)) def find_prime(num): print('找出素数') for i in range(2,num): flg = 0 j=2 while(j<=math.sqrt(i)): # T(log2n) if not(i%j): flg = 1 break j = j+1 if(flg==0): print(i,'是素数') print('Good Bye')`
这种找到 n 的二次根停下来退出循环,更加简洁。
2.运算
b = 2**67-1
a = []
j = 1#以上三步都是设置变量
#print('判断1000以内的素数')
for i in range(2,b):
flg = 0
for j in range(2,i-1): #
if not(i%j):
flg = 1
break
if(flg == 0):
#print(i,'是素数')
a.append(i)
#开始寻找质数,存入列表a里面
c = a[len(a)-1]#将符合条件的质数找出来
if c ==b:
print('true')#如果确实相等,输出"true"
else:
print('false')#如果不相等,输出"false"