为什么我在codechef和spoj上得到了关于埃拉托什尼分段筛的NZEC错误,而它在我的计算机上运行得非常好?

2024-05-18 18:29:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解决spoj上的主生成器问题,但我得到了运行时错误。 链接:http://www.spoj.com/problems/PRIME1/ 代码如下

def sieve(n):
    from math import sqrt
    x=int(sqrt(n))
    numbers=[None]*x
    for i in range(2,x):
        numbers[i]= True
    primes=[]
    for i in range(2,x):
        if numbers[i]==True:
            primes.append(i)
            b=i**2
            while b<x:
                numbers[b]=False
                b=b+i
    return primes
T=int(raw_input())
for i in range(T):
    m,n=raw_input().split()
    m,n=int(m),int(n)
    segmentedlist=[None]*n
    for i in range(n):
        segmentedlist[i]=True
    A=sieve(n)
    prime=[]
    for i in A:
        u=i*(m/i)
        while u<n:
            segmentedlist[u]=False
            u=u+i
    for i in range(m,n):
        if segmentedlist[i]==True:
            prime.append(i)
    for i in prime:
        print i
    print "\n"

我读到NZEC错误时,建设筛子,但我不知道为什么? 有人能解释一下吗


Tags: innonetrueforif错误rangesqrt

热门问题