#include <bits/stdc++.h>
using namespace std;
long long q, p, ans;
void func(long long x) {
  long long tmp = p;
  while (tmp % q == 0) tmp /= x;
  ans = max(tmp, ans);
}
int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    scanf("%lld%lld", &p, &q);
    if (p % q)
      printf("%lld\n", p);
    else {
      long long x = q;
      ans = 1;
      for (int i = 2; i * i <= x; i++) {
        if (x % i == 0) func(i);
        while (x % i == 0) x /= i;
      }
      if (x > 1) func(x);
      printf("%lld\n", ans);
    }
  }
  return 0;
}
