【发布时间】:2018-02-11 19:16:33
【问题描述】:
我有好几天都在为这个用于 SPOJ 问题的 Prime Generator 算法而苦苦挣扎。问题状态是在 6 秒内从数字 m,n 打印至少 100000 个素数,其中 n
这里将不胜感激。
def sieveOfErosthen(m):
limit=m+1
prime=[True]*limit
for i in range(2,int(m**0.5)):
if prime[i]:
for x in range(i*i,limit,i):
prime[x]=False
return prime
def segmentedSieve(m,n):
limit= n+1
segment=[True]*limit
for j in range(2,int(n**0.5) ):
if sieveOfErosthen(j):
for b in range(j*(m//j),limit,j):
if b >j:
segment[b]=False
for v in range(m,limit):
if segment[v]:
print(v)
return True
【问题讨论】:
-
请正确格式化您的代码,因为它包含多个语法错误。
-
请看我的分段筛HERE。
标签: python algorithm sieve-of-eratosthenes