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
mouradsme: 2016-08-07 11:06:25

I wrote my code in php, and tested it on ideone and had the same results concerning the execution time (less than 0.0002 seconds) but when I submit it, it says that the time was exceeded?

Last edit: 2016-08-07 11:09:45
gd_8038: 2016-08-02 19:04:10

how to check test cases for which my solution is giving wrong answer?

Last edit: 2016-08-02 19:04:26
Rezaul H Sagar: 2016-07-30 10:51:56

Miller-Rabin gave me AC in 0.92s.

kannangce: 2016-07-26 20:30:45

Getting EOF when reading a line in python.. Any clue.?

tectonicfury: 2016-07-26 10:59:12

[Nice comment by "octav" which i found useful while debugging:(i feel his comment should be made sticky)]

I've read a lot of comments here that are pure nonsense.
PLEASE READ THE REQUIREMENTS CAREFULLY BEFORE POSTING DUMB S#*T!
Use these test cases to find out your issues (all can be found in the input/output sections):

a) test with following input for Time Limit Exceeded (your program should finish under 6 seconds):
1
999900000 1000000000 (- so display all primes between 999.900.000 [999 million 900 thousands] and 1.000.000.000 [one billion] )

b) check the corectness
(lower limit) - this is why I got my wrong answers (also got segfaults but that was my fault)
6
1 3
2 3
1 5
2 5
3 5
1 10

(upper limit)
1
1 200 (you can find the list of the primes between 1 and 200 online - you can even try 1000 here if you are getting wrong answers)

c) there is a source file size limit and a memory usage limit so it makes no sense to use pre-computed primes list or arrays (especially not ones that have 10000000 elements like somebody suggested...)

Hopes this helps - and next time read carefully the requirements and create the test cases yourself before writing the code (it helps for better understanding what's required of you).

PS: if you optimized your code and you are still not close enough to the target time, it means your approach is wrong and you should step back and rethink everything - stop wasting time, the algorithm should work in the given time even without optimizing.

Last edit: 2016-07-26 10:59:42
venkat73: 2016-07-23 20:14:46

How do I read input for this problem in PHP? Can anyone help?

Shidhu : 2016-07-20 20:40:45

unbelievable !!!!
Solved at 0.01s by Segmented Sieve :)

binari: 2016-07-18 23:19:42

Use segmented sieve, as said by the comments.. but documents on the net may not tell it easily, so you have to understand and implement it yourself. It took me for 2 days (about 10 hours) to understand it.

rishabh_1997: 2016-07-13 08:53:35

Very nice question, first learnt sieve, Runtime Error.
Then converted into segmented sieve, AC. :)

wolf_01: 2016-07-12 08:27:49

I used Rabin–Miller primality test for solving this question in python


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