#include using namespace std; using ll = long long; using Graph = vector>; int main() { long long N; cin >> N; map dic; int count = 0; while(true) { bool fire = false; for(int i = 2; i <= sqrt(N); i++) { if(N % i == 0) { N /= i; dic[i]++; fire = true; break; } } if(fire == false) { break; } } dic[N]++; int ans = 1; int a = 1; for (const auto& [key, value] : dic) { if(value % 2 == 0) { int x = value / 2; ans *= pow(key,x); }else { int x = (value - 1) / 2; ans *= pow(key,x); a *= key; } } cout <