#include<bits/stdc++.h>
using namespace std;
#define dbg(var) cout<<#var<<"="<<var<<"\n"
#define ll long long
#define nl cout<<"\n"
ll cil(ll a,ll b){return a/b+(a%b!=0);}
inline ll min(ll a,ll b){return a<b?a:b;}
const int N = 1000000;
ll lp[N+1];
vector<ll>pr;
void sieve(){
for (int i=2; i<=N; ++i) {
if (lp[i] == 0) {
lp[i] = i;
pr.push_back (i);
}
for (int j=0; j<(int)pr.size() && pr[j]<=lp[i] && i*pr[j]<=N; ++j)
lp[i * pr[j]] = pr[j];
}
}
bool is_prime[N+10];
int main()
{
sieve();
int tst;cin>>tst;while(tst--){
ll a,b;scanf("%lld %lld",&a,&b);
while(a<=min(N,b)){
if(lp[a]==a)printf("%lld\n",a);a++;
}
if(a>b){nl;continue;}
int sz=b-a+1;
memset(is_prime,1,sizeof is_prime);
for(ll p:pr){
int start=cil(a,p);//dbg(p);dbg(start);nl;
for(int fm=start*p-a;fm<=sz+2 and fm>=0;fm+=p)
is_prime[fm]=0;
}
for(int i=0;i<sz;i++)if(is_prime[i])printf("%lld\n",i+a);
nl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBkYmcodmFyKSBjb3V0PDwjdmFyPDwiPSI8PHZhcjw8IlxuIgojZGVmaW5lIGxsIGxvbmcgbG9uZyAKI2RlZmluZSBubCBjb3V0PDwiXG4iCgpsbCBjaWwobGwgYSxsbCBiKXtyZXR1cm4gYS9iKyhhJWIhPTApO30KaW5saW5lIGxsIG1pbihsbCBhLGxsIGIpe3JldHVybiBhPGI/YTpiO30KY29uc3QgaW50IE4gPSAxMDAwMDAwOwpsbCBscFtOKzFdOwp2ZWN0b3I8bGw+cHI7CnZvaWQgc2lldmUoKXsKCWZvciAoaW50IGk9MjsgaTw9TjsgKytpKSB7CiAgICBpZiAobHBbaV0gPT0gMCkgewogICAgICAgIGxwW2ldID0gaTsKICAgICAgICBwci5wdXNoX2JhY2sgKGkpOwogICAgfQogICAgZm9yIChpbnQgaj0wOyBqPChpbnQpcHIuc2l6ZSgpICYmIHByW2pdPD1scFtpXSAmJiBpKnByW2pdPD1OOyArK2opCiAgICAgICAgbHBbaSAqIHByW2pdXSA9IHByW2pdOwogICB9CQp9CmJvb2wgaXNfcHJpbWVbTisxMF07CmludCBtYWluKCkKewoJc2lldmUoKTsKCWludCB0c3Q7Y2luPj50c3Q7d2hpbGUodHN0LS0pewoJCWxsIGEsYjtzY2FuZigiJWxsZCAlbGxkIiwmYSwmYik7CgkJd2hpbGUoYTw9bWluKE4sYikpewoJCQlpZihscFthXT09YSlwcmludGYoIiVsbGRcbiIsYSk7YSsrOwoJCX0KCQlpZihhPmIpe25sO2NvbnRpbnVlO30KCQlpbnQgc3o9Yi1hKzE7CgkJbWVtc2V0KGlzX3ByaW1lLDEsc2l6ZW9mIGlzX3ByaW1lKTsKCQlmb3IobGwgcDpwcil7CgkJCWludCBzdGFydD1jaWwoYSxwKTsvL2RiZyhwKTtkYmcoc3RhcnQpO25sOwoJCQlmb3IoaW50IGZtPXN0YXJ0KnAtYTtmbTw9c3orMiBhbmQgZm0+PTA7Zm0rPXApCgkJCWlzX3ByaW1lW2ZtXT0wOwoJCX0KCQlmb3IoaW50IGk9MDtpPHN6O2krKylpZihpc19wcmltZVtpXSlwcmludGYoIiVsbGRcbiIsaSthKTsKICAgICAgICBubDsKCQkKCX0gICAgIAkJCgp9