void solve() {
      ll k;cin>>k;
     if(k<=5 or isprime(k)){
         cout<<k<<endl;
         return;
     }
    ll ans=0;
    ll x=k;
    for(ll i=2;i*i<=k;i++){
        if(k%i==0){
             ll cnt=0,j=1;
             while(x%i==0){
                  x=x/i;
                  cnt++;
                  if(cnt==j){
                      cnt=0;
                      j++;
                  }
             }
            if(cnt==0){
                j--;
            }
            ll p=modpow(i,j);
            ans=max(ans,p);
            j=0;
            cnt=0;
        }
    }
    cout<<ans<<endl;
}