fork(1) download
  1. import io, os, sys
  2. import numpy
  3.  
  4. def primesfrom3to(n):
  5. """ Returns a array of primes, 3 <= p < n """
  6. sieve = numpy.ones(n//2, dtype=bool)
  7. for i in range(3,int(n**0.5)+1,2):
  8. if sieve[i//2]:
  9. sieve[i*i//2::i] = False
  10. return 2*numpy.nonzero(sieve)[0][1::]+1
  11.  
  12. input=(io.BytesIO(os.read(0, os.fstat(0).st_size)).readline)
  13. nt=int(input())
  14. nux=0
  15. nin=[]
  16. notp=set()
  17. notp={'0','2','4','5','6','8'}
  18. #Z wyjatkien 2 i 5, liczby na pewno nie-pierwsze koncza sie na 0,2,4,5,6,8
  19.  
  20. for it in range(nt):
  21. nl, nu = [int(s) for s in input().split()]
  22. if(nl>5):
  23. while str(nl)[-1] in notp:
  24. nl+=1
  25. while str(nu)[-1] in notp:
  26. nu-=1
  27. nin.append([nl,nu])
  28. if nu>nl: #ignorujemy przypadki typu 2147483644 do 2147483646
  29. if nu>nux: nux=nu
  30.  
  31. # generujemy liste raz bo i tak jest zawsze od 2 do n
  32. primes=primesfrom3to(nux)
  33.  
  34. for it in range(nt):
  35. nl,nu = nin[it]
  36. if nu>nl:
  37. pir=numpy.where((primes>=nl) & (primes <=nu))
  38. # wyniki w primes[pir]
  39. for j in primes[pir]:
  40. sys.stdout.write(str(j)+'\n')
Time limit exceeded #stdin #stdout 5s 515092KB
stdin
1
999900000 1000000000
stdout
Standard output is empty