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; }