#include<iostream>#include<vector>#include<cmath>usingnamespace std;boolisprime(longlong x){for(longlong i =2; i < x /2; i++){if(x % i ==0){returnfalse;}}returntrue;}voidPrint(longlong x,int k){
vector<longlong>a;for(longlong i =2; i < x /2; i++){int count =0;if(isprime(i)){while(x % i ==0){
count++;
x = x / i;}}if(count >= k){
a.push_back((longlong)(pow((double)i,(double)count)));}}longlong result =1;for(int i =0; i < a.size(); i++){
result = result * a[i];}
cout << result << endl;}intmain(){int n;
cin >> n;for(int i =0; i < n; i++){longlong x;int k;
cin >> x>>k;Print(x, k);}return0;}