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
gauge2727: 2017-05-07 22:58:08

My Python 3.x solution runs perfectly fine (and relatively quickly) ideone and on my local system, given the sample inputs provided in the description and on test cases of primes up to at least 2 million, but times out on submission for the problem.

elegantalgo: 2017-04-28 16:51:35

At first I thought that it is impossible to solve this problem in Python because it takes more than 30 seconds to generate 1 billion primes with the most efficient prime sieve (+ memory inefficient code), but then I thought about (n-m <= 100000) constraint. It took me lot of time to write a bug free segmented prime sieve (sieve which generates primes only between [m, n]). I solved this problem within 0.12 seconds and I am sure that my code can be made twice as efficient as it currently is :D

=(Francky)=> 0.03s is to be challenged using Python3...

Last edit: 2017-04-28 18:27:05
rohit9934: 2017-04-23 10:40:11

Same Solution without Sieve or Segmented Sieve(Time Limit 3 sec :p)
C : 1.66 sec
C++ : 0.7 seconds.

shahroz14: 2017-04-19 11:38:50

All natural numbers are either a prime or a multiple of a prime except 1.

Last edit: 2017-04-19 11:39:42
secretninja007: 2017-04-16 13:40:10

just use simple logic with long long int and run loop till sqrt(n) it would work,don't use segmented sieve if you are a beginner

supriya_jah: 2017-04-14 11:25:37

I am writing in Java, and the time is 0.06, still it says time limit exceeded. :(

coolboi567: 2017-04-12 22:51:15

@zero_shubham : nope.. Python is slow for that range of prime numbers and generates lots of intermediate datas that causes the either time limit or memory limit errors...

zeroq: 2017-04-10 18:14:39

TLE with java using sqrt. Any tips

zero_shubham: 2017-04-10 14:27:56

anyone successfully did it with python3?

payal_05: 2017-04-10 12:36:06

time limit exceeded :(

Last edit: 2017-04-10 12:36:43

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