这道问题的核心在于求素数
给定两个数字a,b,打印出a,b之间的所有素数
当然a,b有限制,在此略过不谈(题目详见)
因此,仅列出核心的函数,代码如下:
def prime(a,b):
li=range(a,b)+[b]
if a==1:
li[0]=False
for i in range(2,int(b**0.5)+1):
j=a-a%i
if j<i**2:
j=i**2
while j<=b:
try:
if j>=a and li[j-a]:
li[j-a]=False
j+=i
except:
j+=i
for i in li:
if i:
print i
因为代码运行有时间要求,不少提交的代码因为超时被挂掉
这段代码提交上去显示用时1.15s,而排行榜中有用时极短的python代码
若有高人知道如何优化,万望指教!