#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define all(x) (x).begin(),(x).end() typedef long long ll; typedef pair P; const int mod = 1000000007; //出力は (ans % mod + mod) % mod (負の剰余を正にする) const int inf = 1e9; const long long INF = 1LL << 60; // INF = 11 map prime_factors(ll n){ map res; if(n == 1){ res[n] = 1; return res; } for(ll i = 2; i * i <= n; i++){ while(n % i == 0){ ++res[i]; n /= i; } } if(n != 1){ res[n] = 1; } return res; } int main() { ll x; cin >> x; map m = prime_factors(x); ll ans = 1; for(auto i : m){ if(i.second % 2 == 1){ ans *= i.first; } } cout << ans << endl; }