#include #include #include #include #include #include #include #include #include #include #include #include #include #define p(s) cout<<(s)<=n;i--) #define CK(n,a,b) ((a)<=(n)&&(n)<(b)) #define F first #define S second typedef long long ll; using namespace std; const ll inf=1e9+7; ll X, Y; vector> prime_factor(ll n) { vector> vp; // iがsqrt(n)となるまで繰り返す for (ll i = 2; i*i <= n; i++) { if (n%i == 0) { // iが素因数 vp.emplace_back(i, 0); // 素因数の数を求める do { vp[vp.size() - 1].second++; n /= i; } while (n%i == 0); } } if (n != 1) vp.emplace_back(n, 1); return vp; } int main(){ Y=1; cin>>X; vector> pf = prime_factor(X); REP(i,0,pf.size()){ if(pf[i].second%2) Y*=pf[i].first; } p(Y); return 0; }