#include<bits/stdc++.h>
#define MOD 1000000007
#define quick ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
using namespace std;
typedef long long ll;
typedef long double ld;
vector<ll> lastPrime(1000001);
// storing the last prime factor (not smallest) cause its easier
void sieve()
{
bool isPrime[1000001];
memset(isPrime,true,sizeof(isPrime));
for(ll i=2;i<1000001;i++)
{
if(isPrime[i])
{
lastPrime[i]=i;
for(ll j=i+i;j<1000001;j=j+i)
{
isPrime[j]=false;
lastPrime[j]=i;
}
}
}
}
ll fun(ll n)
{
map<ll,ll> factors;
assert(n<=1000000);
while(n!=1)
{
factors[lastPrime[n]]++;
n=n/lastPrime[n];
}
ll ans=1;
for(map<ll,ll>::iterator it=factors.begin();it!=factors.end();it++)
{
if(it->second%2)
{
ans=ans*it->first;
}
}
return ans;
}
int main()
{
sieve();
ll t;
cin>>t;
while(t--)
{
ll n;
cin>>n;
cout<<fun(n)<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIHF1aWNrIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKE5VTEwpO2NvdXQudGllKE5VTEwpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwogCnZlY3RvcjxsbD4gbGFzdFByaW1lKDEwMDAwMDEpOwovLyBzdG9yaW5nIHRoZSBsYXN0IHByaW1lIGZhY3RvciAobm90IHNtYWxsZXN0KSBjYXVzZSBpdHMgZWFzaWVyCnZvaWQgc2lldmUoKQp7Cglib29sIGlzUHJpbWVbMTAwMDAwMV07CgltZW1zZXQoaXNQcmltZSx0cnVlLHNpemVvZihpc1ByaW1lKSk7Cglmb3IobGwgaT0yO2k8MTAwMDAwMTtpKyspCgl7CgkJaWYoaXNQcmltZVtpXSkKCQl7CgkJCWxhc3RQcmltZVtpXT1pOwoJCQlmb3IobGwgaj1pK2k7ajwxMDAwMDAxO2o9aitpKQoJCQl7CgkJCQlpc1ByaW1lW2pdPWZhbHNlOwoJCQkJbGFzdFByaW1lW2pdPWk7CgkJCX0KCQl9Cgl9Cn0KIApsbCBmdW4obGwgbikKewoJbWFwPGxsLGxsPiBmYWN0b3JzOwoJYXNzZXJ0KG48PTEwMDAwMDApOwoJd2hpbGUobiE9MSkKCXsKCQlmYWN0b3JzW2xhc3RQcmltZVtuXV0rKzsKCQluPW4vbGFzdFByaW1lW25dOwoJfQoJbGwgYW5zPTE7Cglmb3IobWFwPGxsLGxsPjo6aXRlcmF0b3IgaXQ9ZmFjdG9ycy5iZWdpbigpO2l0IT1mYWN0b3JzLmVuZCgpO2l0KyspCgl7CgkJaWYoaXQtPnNlY29uZCUyKQoJCXsKCQkJYW5zPWFucyppdC0+Zmlyc3Q7CgkJfQoJfQoJcmV0dXJuIGFuczsKfQppbnQgbWFpbigpCnsKCXNpZXZlKCk7CglsbCB0OwoJY2luPj50OwoJd2hpbGUodC0tKQoJewoJCWxsIG47CgkJY2luPj5uOwoJCWNvdXQ8PGZ1bihuKTw8ZW5kbDsKCX0KCXJldHVybiAwOwp9