#include<iostream>
#include<string>
#include<string>
#include<string.h>
#include<stdio.h>
#include<queue>
#include<math.h>
#include<vector>
#include<stdlib.h>
#include<algorithm>
using namespace std;
long long primes[34000];
int main(){
memset(primes,0,sizeof(primes));
primes[0]=2;
long long t=1;int flag=1;
for(long long i=3;i<34000;i++){
flag=1;
for(int j=2;j<=sqrt(i);j++){
if(i%j==0){
flag=0;
break;
}
}
if(flag) primes[t++]=i;
}
int a1;long long l,u,sum,maxn,k,x,r;
cin>>r;
while(r--){
cin>>l>>u;
sum=1;
maxn=0;
for(long long i=l;i<=u;i++){
sum=1;x=i;flag=0;
for(int j=0; j<t;j++){
if(x%primes[j]==0){
a1=0;
while(x%primes[j]==0){
a1++;
x=x/primes[j];
}
sum*=(a1+1);
}
if(x==1) break;
}
if(sum>maxn) {maxn=sum;k=i;}
}
printf("Between %lld and %lld, %lld has a maximum of %d divisors.\n",l,u,k,maxn);
}
return 0;
}