how can i overcome the time limit exceeding problem in prime generator.
Following is my code which is running perfectly but taking long time...

num =int(input())
l=[]
for i in range(0,num):
    x=input();l.append(x)
def prime_generator(m,n):
    for y in range(m,n):
        w=0
        for z in range (2, y):
           if y%z==0:w=1           
        if w==0:print(y)            
for e in range(len(l)):
    m,n=l[e].split(" ")
    m=int(m)
    n=int(n)
    prime_generator(m,n)
    print()
  • created

    Jan '16
  • last reply

    Jan '16
  • 1

    reply

  • 749

    views

  • 2

    users

Your code checks every divisor up to y for every y. That is way too much. You need to optimize that. Or use a sieve algorithm.