|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 python6 于 2018-12-20 11:57 编辑
题目:
前六个质数是 2, 3, 5, 7, 11 和 13,其中第 6 个是 13。
第 10001 个质数是多少?
r = (number + 1) // 2 运行速度 17.56s
r = int(number ** 0.5) 运行速度 0.201s
以下两个代码
def isPrime(num):
if num == 2:
return True
elif num < 2 or num % 2 == 0:
return False
else:
for i in range(3, int(num ** 0.5) + 1, 2): -------------------------请问这个int(number ** 0.5) +1 和 (number + 1) // 2的意思是一样的吗为什么要用number ** 0.5 请高手解释一下谢谢
if num % i == 0:
return False
else:
return True
num = 1
count = 0
while True:
if isPrime(num):
count += 1
if count == 10001:
print num
break
num += 1
====================
k=1
num=2
i=0
pd=1
while (k<10002):
if (num==2 or num==3):
#print (num,k)
k=k+1
else:
for i in range(2,(num+1)//2):
if (num%i==0):
pd=0
break
if (i ==(num+1)//2-1 and num!=6):
#print (num,k)
k=k+1
num=num+1
print (num-1,k) |
|