1

I am trying to solve prime generator problem on spoj but i got run time error. link:http://www.spoj.com/problems/PRIME1/ The code goes as below

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"

I read that NZEC error comes when constructing sieve but I don't know why? Can anyone explain that

Goku
  • 11
  • 1
  • `segmentedlist=[None]*n`? what does that mean? is it "segmented" at all? -- you create huge lists, this can't work. – Will Ness Sep 19 '15 at 21:51

0 Answers0