fork(3) download
  1. import io, os, sys
  2.  
  3. input=(io.BytesIO(os.read(0, os.fstat(0).st_size)).readline)
  4.  
  5. nt=int(input())
  6. nux=0
  7. nin=[]
  8. notp=set()
  9. notp={'0','2','4','5','6','8'}
  10. #Z wyjatkien 2 i 5, liczby na pewno nie-pierwsze koncza sie na 0,2,4,5,6,8
  11.  
  12. for it in range(nt):
  13. nl, nu = [int(s) for s in input().split()]
  14. if(nl>5):
  15. while str(nl)[-1] in notp:
  16. nl+=1
  17. while str(nu)[-1] in notp:
  18. nu-=1
  19. nin.append([nl,nu])
  20. if nu>nl: #ignorujemy przypadki typu 2147483644 do 2147483646
  21. if nu>nux: nux=nu
  22.  
  23. ptab=bytearray([False]*(nux+1)) #zero domyslnie.albo np.bytearray([1] * 1000
  24. # print(sys.getsizeof(ptab))
  25.  
  26. for i in range(2, nux+1): # generujemy tablice raz bo i tak jest zawsze od 2
  27. if not ptab[i]:
  28. for j in range(i*i, nux+1, i):
  29. ptab[j]=True
  30.  
  31. for it in range(nt):
  32. nl,nu = nin[it]
  33. if nu>nl:
  34. for j in range(nl,nu+1):
  35. if not ptab[j]: sys.stdout.write(str(j)+'\n')
  36. #if not ptab[j]: print(j)
  37.  
Success #stdin #stdout 0.31s 18144KB
stdin
3
2 10
3 7
1000000 1000099
stdout
2
3
5
7
3
5
7
1000003
1000033
1000037
1000039
1000081
1000099