#include #include #include #include #define REP(i,a,b) for(i=a;i 0) { if(n&1) res = res * x; x = x * x; n >>= 1; } return res; } ull prime[10000000]; int main(void) { ull i,j,k,l; ull x; ull rep = 1; scanf("%llu",&x); Eratosthenes(prime,ull_pow(10,6)+10000); for(i=0; x>1 && prime[i] < ull_pow(10,6);i++) { if((x % prime[i]) == 0) { int cnt = 1; x /= prime[i]; while((x % prime[i]) == 0) { cnt++; x /= prime[i]; } if(cnt % 2) rep *= prime[i]; } } rep *= x; printf("%llu\n",rep); return 0; }