#include using namespace std; using ll = long long; #define rep(i,m,n) for(int i=m; i> X; map prime_fact; for(ll i = 2LL; i*i <= X; ++i){ if(X % i != 0LL) continue; ll ex = 0LL; while(X % i == 0){ X /= i; ex++; } prime_fact[i] = ex; } if(X != 1LL) prime_fact[X] = 1LL; ll Y = 1LL; for(auto &p : prime_fact){ if(p.second % 2LL == 1LL){ Y *= p.first; } } cout << Y << endl; return 0; }