#include<cstdio>
int div[1000001],mat[8][1000001];
int ciurdiv()
{
int i,j;
for(i=2;i<=1000000;i++)
{
if (!div[i])
{
for(j=i+i;j<=1000000;j=j+i)
div[j]++;
div[i]=1;
}
}
}
int main()
{
freopen("divprim.in","r",stdin);
freopen("divprim.out","w",stdout);
int i,j,t,n,k;
ciurdiv();
for(i=0;i<=1000000;i++)
mat[0][i]=1;
for(i=1;i<=7;i++)
{
for(j=1;j<=1000000;j++)
if (div[j]==i)
mat[i][j]=j;
else
mat[i][j]=mat[i][j-1];
}
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%d%d",&n,&k);
printf("%d\n",mat[k][n]);
}
return 0;
}