#include #define rep(i,n) for(int i=0;i<(int)(n);i++) using namespace std; using ll = long long ; using P = pair ; using pll = pair; constexpr int INF = 1e9; constexpr long long LINF = 1e17; constexpr int MOD = 1000000007; int main(){ ll x; cin >> x; vector prime; for(ll i=2;i*i<=x;i++){ if(x%i==0){ prime.push_back(pll(i,0)); while(x%i==0){ x /= i; prime.back().second ++; } } } if(x > 1){ prime.push_back(pll(x,1)); } ll y = 1; for(pll p:prime){ if(p.second%2==1){ y *= p.first; } } cout << y << endl; return 0; }