#include <iostream>
#include <cmath>
const int MAX = 20;
bool arrStorePrimes[MAX] = { 0 };
void ShowPrimes(int min, int max);
bool isPrime(int n)
{
if(n == 1)
return false;
if(n < MAX && arrStorePrimes[n] != 0)
{
return true;
}
int sq = sqrt(n);
for(int i = 3; i <= sq; i += 2)
{
if(n % i == 0)
return false;
}
if(n < MAX)
arrStorePrimes[n] = 1;
return true;
}
int main()
{
using std::cin;
int num;
cin >> num;
int min, max;
while(num)
{
cin >> min;
cin >> max;
ShowPrimes(min, max);
num--;
}
return 0;
}
void ShowPrimes(int min, int max)
{
if( min % 2 == 0 )
++min;
for(int i = min; i <= max; i += 2)
{
if(isPrime(i))
std::cout << i << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgpjb25zdCBpbnQgTUFYID0gMjA7Cgpib29sIGFyclN0b3JlUHJpbWVzW01BWF0gPSB7IDAgfTsKCnZvaWQgU2hvd1ByaW1lcyhpbnQgbWluLCBpbnQgbWF4KTsKCmJvb2wgaXNQcmltZShpbnQgbikKewogICAgaWYobiA9PSAxKQoJCXJldHVybiBmYWxzZTsKCglpZihuIDwgTUFYICYmIGFyclN0b3JlUHJpbWVzW25dICE9IDApCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgogICAgICAgIGludCBzcSA9IHNxcnQobik7CgoJZm9yKGludCBpID0gMzsgaSA8PSBzcTsgaSArPSAyKQoJewoJCWlmKG4gJSBpID09IDApCgkJCXJldHVybiBmYWxzZTsKCX0KCglpZihuIDwgTUFYKQoJCWFyclN0b3JlUHJpbWVzW25dID0gMTsKCQoJcmV0dXJuIHRydWU7Cn0KaW50IG1haW4oKQp7Cgl1c2luZyBzdGQ6OmNpbjsKCWludCBudW07CgljaW4gPj4gbnVtOwoJaW50IG1pbiwgbWF4OwoJCgl3aGlsZShudW0pCgl7CgkJY2luID4+IG1pbjsKCQljaW4gPj4gbWF4OwoJCVNob3dQcmltZXMobWluLCBtYXgpOwoJCW51bS0tOwoJfQoJcmV0dXJuIDA7Cn0KCnZvaWQgU2hvd1ByaW1lcyhpbnQgbWluLCBpbnQgbWF4KQp7CglpZiggbWluICUgMiA9PSAwICkKCQkrK21pbjsKCWZvcihpbnQgaSA9IG1pbjsgaSA8PSBtYXg7IGkgKz0gMikKCXsKCQlpZihpc1ByaW1lKGkpKQoJCQlzdGQ6OmNvdXQgPDwgaSA8PCBzdGQ6OmVuZGw7Cgl9Cn0=