#include <iostream>
#include <cmath>
#include <vector>
#include <set>
using namespace std;
int main()
{ vector
<int
> primes
; primes.
push_back(2); for (int i
= 3; i
<= 32000; i
+=2) { bool isprime
= true; int cap
= sqrt(i
) + 1; vector
<int
>::iterator p
; for (p
= primes.
begin(); p
!= primes.
end(); p
++) { if (*p
>= cap
) break; if (i
% *p
== 0) { isprime
= false; break; } } if (isprime
) primes.
push_back(i
); } int T
,N
,M
; cin
>> T
; for (int t
= 0; t
< T
; t
++) { if (t
) cout
<< endl
; cin
>> M
>> N
; if (M
< 2) M
= 2; int cap
= sqrt(N
) + 1; set
<int
> notprime
; notprime.
clear(); vector
<int
>::iterator p
; for (p
= primes.
begin(); p
!= primes.
end(); p
++) { if (*p
>= cap
) break; int start
; if (*p
>= M
) start
= (*p
)*2; else start
= M
+ ((*p
- M
% *p
) % *p
); for (int j
= start
; j
<= N
; j
+= *p
) { notprime.
insert(j
); } } for (int i
= M
; i
<= N
; i
++) { if (notprime.
count(i
) == 0) { cout
<< i
<< endl
; } } } return 0; }
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAKI2luY2x1ZGUgPGNtYXRoPiAKI2luY2x1ZGUgPHZlY3Rvcj4KICNpbmNsdWRlIDxzZXQ+IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsgCiBpbnQgbWFpbigpCiAgeyB2ZWN0b3I8aW50PiBwcmltZXM7IHByaW1lcy5wdXNoX2JhY2soMik7IGZvciAoaW50IGkgPSAzOyBpIDw9IDMyMDAwOyBpKz0yKSB7IGJvb2wgaXNwcmltZSA9IHRydWU7IGludCBjYXAgPSBzcXJ0KGkpICsgMTsgdmVjdG9yPGludD46Oml0ZXJhdG9yIHA7IGZvciAocCA9IHByaW1lcy5iZWdpbigpOyBwICE9IHByaW1lcy5lbmQoKTsgcCsrKSB7IGlmICgqcCA+PSBjYXApIGJyZWFrOyBpZiAoaSAlICpwID09IDApIHsgaXNwcmltZSA9IGZhbHNlOyBicmVhazsgfSB9IGlmIChpc3ByaW1lKSBwcmltZXMucHVzaF9iYWNrKGkpOyB9IGludCBULE4sTTsgY2luID4+IFQ7IGZvciAoaW50IHQgPSAwOyB0IDwgVDsgdCsrKSB7IGlmICh0KSBjb3V0IDw8IGVuZGw7IGNpbiA+PiBNID4+IE47IGlmIChNIDwgMikgTSA9IDI7IGludCBjYXAgPSBzcXJ0KE4pICsgMTsgc2V0PGludD4gbm90cHJpbWU7IG5vdHByaW1lLmNsZWFyKCk7IHZlY3RvcjxpbnQ+OjppdGVyYXRvciBwOyBmb3IgKHAgPSBwcmltZXMuYmVnaW4oKTsgcCAhPSBwcmltZXMuZW5kKCk7IHArKykgeyBpZiAoKnAgPj0gY2FwKSBicmVhazsgaW50IHN0YXJ0OyBpZiAoKnAgPj0gTSkgc3RhcnQgPSAoKnApKjI7IGVsc2Ugc3RhcnQgPSBNICsgKCgqcCAtIE0gJSAqcCkgJSAqcCk7IGZvciAoaW50IGogPSBzdGFydDsgaiA8PSBOOyBqICs9ICpwKSB7IG5vdHByaW1lLmluc2VydChqKTsgfSB9IGZvciAoaW50IGkgPSBNOyBpIDw9IE47IGkrKykgeyBpZiAobm90cHJpbWUuY291bnQoaSkgPT0gMCkgeyBjb3V0IDw8IGkgPDwgZW5kbDsgfSB9IH0gcmV0dXJuIDA7IH0KIAkKIAlyZXR1cm4gMDsKIH0K