#include <iostream>
#include <complex>
#include <cstdlib>
using namespace std;
int D[500100];
int FF[500100];
typedef complex<double> base;
int rev[1100000];
base wlen_pw[1100000];
long double PI = 3.14159265354;
int n = 1048576;
base fa[1048576];
base fb[1048576];
void fft (base a[], bool invert) {
for (int i=0; i<n; ++i)
if (i < rev[i])
swap (a[i], a[rev[i]]);
for (int len=2; len<=n; len<<=1) {
double ang = 2*PI/len * (invert?-1:+1);
int len2 = len>>1;
base wlen (cos(ang), sin(ang));
wlen_pw[0] = base (1, 0);
for (int i=1; i<len2; ++i)
wlen_pw[i] = wlen_pw[i-1] * wlen;
for (int i=0; i<n; i+=len) {
base t,
*pu = a+i,
*pv = a+i+len2,
*pu_end = a+i+len2,
*pw = wlen_pw;
for (; pu!=pu_end; ++pu, ++pv, ++pw) {
t = *pv * *pw;
*pv = *pu - t;
*pu += t;
}
}
}
if (invert)
for (int i=0; i<n; ++i)
a[i] /= n;
}
void calc_rev () {
for (int i=0; i<n; ++i) {
rev[i] = 0;
for (int j=0; j<20; ++j)
if (i & (1<<j))
rev[i] |= 1<<(19-j);
}
}
void multiply () {
for (int i=0;i<500001;i++)
fa[i] = D[i];
for (int i=0;i<500001;i++)
fb[i] = D[i];
fft (fa, false);
fft (fb, false);
for (size_t i=0; i<n; ++i)
fa[i] *= fb[i];
fft (fa, true);
for (size_t i=0; i<500001; ++i)
FF[i] = int (fa[i].real() + 0.5);
}
int main(){
D[1] = 1;
for (int i=2;i<=500000;i++)
if (!D[i])
for (int j=i+i;j<=500000;j+=i)
D[j] = i;
for (int i=500000;i>=2;i--){
int d = 1;
int u = i;
int b = D[u];
int c = 0;
while (D[u]){
if (b == D[u])
c++;
else{
d*=(c+1);
c = 1;
b = D[u];
}
u/=D[u];
}
if (u == b)
d*=(c+2);
else d*=(c+1)*2;
D[i] = d;
}
calc_rev();
multiply();
int N;
cin >> N;
for (int i=0;i<N;i++){
int l,r;
cin >> l >> r;
int aa = 0;
int v = -1;
for (int j=l;j<=r;j++)
if (aa < FF[j]){
aa = FF[j];
v = j;
}
cout << v << " "<<aa<<endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y29tcGxleD4KI2luY2x1ZGUgPGNzdGRsaWI+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAppbnQgRFs1MDAxMDBdOwppbnQgRkZbNTAwMTAwXTsKIAp0eXBlZGVmIGNvbXBsZXg8ZG91YmxlPiBiYXNlOwogCmludCByZXZbMTEwMDAwMF07CmJhc2Ugd2xlbl9wd1sxMTAwMDAwXTsKbG9uZyBkb3VibGUgUEkgPSAzLjE0MTU5MjY1MzU0OwppbnQgbiA9IDEwNDg1NzY7CmJhc2UgZmFbMTA0ODU3Nl07CmJhc2UgZmJbMTA0ODU3Nl07CiAKdm9pZCBmZnQgKGJhc2UgYVtdLCBib29sIGludmVydCkgewogICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpCiAgICAgICAgICAgICAgICBpZiAoaSA8IHJldltpXSkKICAgICAgICAgICAgICAgICAgICAgICAgc3dhcCAoYVtpXSwgYVtyZXZbaV1dKTsKIAogICAgICAgIGZvciAoaW50IGxlbj0yOyBsZW48PW47IGxlbjw8PTEpIHsKICAgICAgICAgICAgICAgIGRvdWJsZSBhbmcgPSAyKlBJL2xlbiAqIChpbnZlcnQ/LTE6KzEpOwogICAgICAgICAgICAgICAgaW50IGxlbjIgPSBsZW4+PjE7CiAKICAgICAgICAgICAgICAgIGJhc2Ugd2xlbiAoY29zKGFuZyksIHNpbihhbmcpKTsKICAgICAgICAgICAgICAgIHdsZW5fcHdbMF0gPSBiYXNlICgxLCAwKTsKICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MTsgaTxsZW4yOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgIHdsZW5fcHdbaV0gPSB3bGVuX3B3W2ktMV0gKiB3bGVuOwogCiAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgaSs9bGVuKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UgdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcHUgPSBhK2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnB2ID0gYStpK2xlbjIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwdV9lbmQgPSBhK2krbGVuMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcHcgPSB3bGVuX3B3OwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgcHUhPXB1X2VuZDsgKytwdSwgKytwdiwgKytwdykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQgPSAqcHYgKiAqcHc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnB2ID0gKnB1IC0gdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcHUgKz0gdDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgIH0KIAogICAgICAgIGlmIChpbnZlcnQpCiAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKQogICAgICAgICAgICAgICAgICAgICAgICBhW2ldIC89IG47Cn0KIAp2b2lkIGNhbGNfcmV2ICgpIHsKICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CiAgICAgICAgICAgICAgICByZXZbaV0gPSAwOwogICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPDIwOyArK2opCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICYgKDE8PGopKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldltpXSB8PSAxPDwoMTktaik7CiAgICAgICAgfQp9CiAKdm9pZCBtdWx0aXBseSAoKSB7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgaT0wO2k8NTAwMDAxO2krKykKICAgICAgICAgICAgICAgIGZhW2ldID0gRFtpXTsKICAgICAgICBmb3IgKGludCBpPTA7aTw1MDAwMDE7aSsrKQogICAgICAgICAgICAgICAgZmJbaV0gPSBEW2ldOyAgIAogCiAgICAgICAgZmZ0IChmYSwgZmFsc2UpOwogICAgICAgIGZmdCAoZmIsIGZhbHNlKTsKICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGk8bjsgKytpKQogICAgICAgICAgICAgICAgZmFbaV0gKj0gZmJbaV07CiAgICAgICAgZmZ0IChmYSwgdHJ1ZSk7CiAKIAogICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTw1MDAwMDE7ICsraSkKICAgICAgICAgICAgICAgIEZGW2ldID0gaW50IChmYVtpXS5yZWFsKCkgKyAwLjUpOwp9CiAKIAppbnQgbWFpbigpewogIERbMV0gPSAxOwogIGZvciAoaW50IGk9MjtpPD01MDAwMDA7aSsrKQogICAgICAgIGlmICghRFtpXSkKICAgICAgICAgICAgICAgIGZvciAoaW50IGo9aStpO2o8PTUwMDAwMDtqKz1pKQogICAgICAgICAgICAgICAgICAgICAgICBEW2pdID0gaTsKIAogIGZvciAoaW50IGk9NTAwMDAwO2k+PTI7aS0tKXsKICAgICBpbnQgZCA9IDE7CiAgICAgaW50IHUgPSBpOyAKICAgICBpbnQgYiA9IERbdV07CiAgICAgaW50IGMgPSAwOwogICAgIHdoaWxlIChEW3VdKXsKICAgICAgICBpZiAoYiA9PSBEW3VdKQogICAgICAgICAgICAgICAgYysrOwogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGQqPShjKzEpOwogICAgICAgICAgICBjID0gMTsKICAgICAgICAgICAgYiA9IERbdV07CiAgICAgICAgfQogICAgICAgIHUvPURbdV07CiAgICAgfSAgCiAgICAgaWYgKHUgPT0gYikKICAgICAgICAgICAgIGQqPShjKzIpOwogICAgIGVsc2UgZCo9KGMrMSkqMjsKICAgICBEW2ldID0gZDsgCiAgfQogIGNhbGNfcmV2KCk7CiAgbXVsdGlwbHkoKTsKIAogCiAgaW50IE47CiAgY2luID4+IE47CiAgZm9yIChpbnQgaT0wO2k8TjtpKyspewogICAgIGludCBsLHI7CiAgICAgY2luID4+IGwgPj4gcjsKICAgICBpbnQgYWEgPSAwOwogICAgIGludCB2ID0gLTE7CiAgICAgZm9yIChpbnQgaj1sO2o8PXI7aisrKQogICAgICAgIGlmIChhYSA8IEZGW2pdKXsKICAgICAgICAgICAgICAgIGFhID0gRkZbal07CiAgICAgICAgICAgICAgICB2ID0gajsKICAgICAgICB9CiAgICAgICAgY291dCA8PCB2IDw8ICIgIjw8YWE8PGVuZGw7CiAgfSAKfQ==