#include using namespace std; #ifdef LOCAL #define eprintf(...) fprintf(stderr, __VA_ARGS__) #else #define eprintf(...) 42 #endif #define rep(i,n) for(int i=0;i<(int)(n);i++) #define repi(i,a,b) for(int i=(int)(a);i<(int)(b);i++) #define all(x) (x).begin(),(x).end() #define foreach(u,v) for(auto (u) : (v)) #define pb push_back #define mp make_pair #define mt make_tuple typedef long long ll; typedef pair pii; typedef vector vi; typedef vector vvi; typedef pair pll; typedef vector vl; const int inf = 1e9; const ll linf = 1LL<<60; const ll mod = 1e9 + 7; const double eps = 1e-9; /* */ int main() { ll x; cin >> x; vector p; for(int i = 2; i <= x/i; i++){ int cnt = 0; while(x%i == 0){ cnt++; x /= i; } if(cnt) p.pb(mp(i, cnt)); } if(x != 1) p.pb(mp(x, 1)); ll ans = 1; for(auto q : p){ if(q.second%2 == 1){ ans *= q.first; } } cout << ans << endl; return 0; }