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
trongtd1973: 2018-06-19 04:27:16

Accepted. C compiler. The essential thing we should do is to stop the checking when it have the very first measure
--------------------------------
#include <stdio.h>
#include <math.h>
int main(){
long M, N, i, j, c;
int T;
scanf("%d", &T);
for (i=1; i<=T; i++){
scanf("%ld %ld", &M, &N);
for (j=M; j<=N; j++){
c=2;
while ((j%c!=0)&&(c<=sqrt(j))){
c = c + 1;
}
if ((c>sqrt(j))&&(j>1))printf("%ld\n", j);
}
printf("\n");
}
scanf("%d");
return 0;
}

trongtd1973: 2018-06-19 04:03:33

@bluenokia: I think, in "check prime" funtion u should stop checking when k%i==0, It's the main proplem ;)

bluenokia: 2018-06-16 06:20:06

Need help. I think my code is pretty efficient, still getting TLE. I have used 6n+1 or 6n-1 method instead of the Sieves. Here's the code :: https://ideone.com/y1L9PK

Last edit: 2018-06-16 06:22:02
milw0rm_007: 2018-06-14 10:36:35

Time limit exceeding in Java... How to get through this?

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
ankit1w: 2018-06-01 06:46:02

What is wrong with my code?
It runs fine on IDEOne, but here it gives time limit exceeded error...
https://ideone.com/pRZRej

sillypie: 2018-05-26 22:48:16

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


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