#define _CRT_SECURE_NO_WARNINGS #define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(a,b) for(long long a = 0;a < b;++a) short graphing[100000000] = {}; int main() { long long x; cin >> x; long long hoge = sqrt(x); long long counter = 2; while (counter <= hoge) { if (x%counter == 0) { graphing[counter]++; x = x / counter; } else { counter++; } } long long ans = x; for (int i = 2;i <= hoge;++i) { if (graphing[i] % 2 == 1) { ans = ans * i; } } cout << ans; }