#include<bits/stdc++.h>
using namespace std;
int sushu[100000000]={0}; //用来记录每个因子的指数
int main()
{
int q;
cin>>q;
while(q--)
{
for(int j=0;j<100000000;j++) sushu[j]=0; //全部还原为0
long long n;
int k;
cin>>n>>k;
int t=2;
while(n!=1) //不用判断是不是素数,因为如果不是素数,那么它由其它素数相乘而来,在使用它之前就被拆分了
{
if(n%t==0)
{
sushu[t]++;
n=n/t;
}
else
{
t++;
}
}
long long result=1;
for(int m=2;m<100000000;m++)
{
if(sushu[m]>=k) result*=pow(m,sushu[m]);
}
cout<<result<<endl;
}
}