#include <bits/stdc++.h>
using namespace std;
int prime[1111111];
void sieve() {
  long long i, j;
  for (i = 4; i <= 1000000; i += 2) prime[i] = 1;
  for (i = 3; i <= 1000000; i += 2) {
    if (!prime[i])
      for (j = i + i; j <= 1000000; j += i) prime[j] = 1;
  }
}
int func(long long int n) {
  long long int ans = 1;
  long long i;
  for (i = 2; i * i <= n; i++) {
    if (n % i == 0 && !prime[i]) {
      long long cnt = 0;
      while (n > 1 && n % i == 0) {
        ++cnt;
        n /= i;
      }
      if (cnt >= 2) return 0;
    }
  }
  return 1;
}
int main() {
  sieve();
  long long int n;
  cin >> n;
  long long int ans = 1;
  long long int i;
  for (i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      int cnt = func(i);
      if (cnt) ans = max(ans, i);
      cnt = func(n / i);
      if (cnt) ans = max(ans, n / i);
    }
  }
  cout << ans;
  return 0;
}
