#include #include #include #include #include #include #include #include #include #include #include #include //#include "toollib.h" #define INT_MAX 2147483647 #define Loop(i, n) for(int i = 0; i < (int)n; i++) #pragma warning (disable:4018) using namespace std; typedef long long int lint; typedef struct { int x; int y; }coordinate; //***** Main Program ***** int main() { lint x; cin >> x; vector> a; if (x % 2 == 0) { x /= 2; a.push_back({ 2,1 }); while (x % 2 == 0) { x /= 2; a[0].second++; } } if (x != 1) { for (lint i = 3; i <= sqrt(x); i = i + 2) { if (x%i == 0) { x /= i; a.push_back({ i,1 }); while (x%i == 0) { x /= i; a.back().second++; } } } if (x != 1) { a.push_back({ x,1 }); } } lint ret = 1; Loop(i, a.size()) { if (a[i].second % 2 == 1) ret *= a[i].first; } cout << ret << endl; return 0; }