PRIME1 - Prime Generator


Peter wants to generate some prime numbers for his cryptosystem. Help him! Your task is to generate all prime numbers between two given numbers!

Input

The input begins with the number t of test cases in a single line (t<=10). In each of the next t lines there are two numbers m and n (1 <= m <= n <= 1000000000, n-m<=100000) separated by a space.

Output

For every test case print all prime numbers p such that m <= p <= n, one number per line, test cases separated by an empty line.

Example

Input:
2
1 10
3 5

Output:
2
3
5
7

3
5
Warning: large Input/Output data, be careful with certain languages (though most should be OK if the algorithm is well designed)

Information

After cluster change, please consider PRINT as a more challenging problem.

hide comments
ajayc1007: 2018-06-12 17:46:19

Check divisibility by 6n+1 and 6n-1. Then try !
Thanks @trunghieu99tt

s0leno1d: 2018-06-11 20:08:59

For those troubled with the sieve...
Remember that Complexity of sieve is O(sqrt(n)*log(log(n))) and that of sqrt(n) method is O(sqrt(n))
But here, we're interested in printing the primes between m and n as well, so the complexities respectively modify to O(n*sqrt(n)*log(log(n))) and O((n-m)*sqrt(n)).
Now check the constraints... you'll be shocked. ;)

chinki1234: 2018-06-11 12:39:13

how to deal with "time limit exceeded"?

andres_97: 2018-06-02 18:50:48

not it's necesary sieve erastothenes AC one go Time 3.6 s in c++

Last edit: 2018-06-02 18:51:25
sillypie: 2018-05-26 22:48:16

i am using segmented sieve and having TLE. please help!

vgupta1127: 2018-05-24 11:12:48

Time Limit exceeding coming ;(

ixodus: 2018-05-23 20:43:28

I have attempted it using Python, but with a pretty naive approach.
http://www.spoj.com/submit/PRIME1/id=21714298
could someone please help me out? I'm getting a ' Time Limit Exceeded' error. The 2nd problem on this site for me :/

jeffselal: 2018-05-20 17:22:18

I am getting a seg fault
Here is my source code
http://www.spoj.com/submit/PRIME1/id=21693308
Any suggestions to get rid of this

Last edit: 2018-05-20 17:38:59
mushusax: 2018-05-16 18:11:38

let m <= i <= n
I initially would've looped to check divisibility between 2 and i / 2. Why does 2 and sqrt(i) work? Would it not be less accurate?

anshuraj110: 2018-05-14 20:47:38

http://www.spoj.com/submit/PRIME1/id=21660203

This is my solution..its giving TLE ..please suggest what to do?


Added by:Adam Dzedzej
Date:2004-05-01
Time limit:6s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: NODEJS PERL6