/**
* author: orzvanh14 ( )
* created: 23.12.2022 10:08:02
* too lazy to update time
**/
// i wants to take ioi
//binhtinhtutinkhongcaycunhungmotkhikhongcontutinnualatuyetvong
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define nn "\n"
#define pi pair<int, int>
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define eb emplace_back
#define pb push_back
#define TASK " "
#define ms(a, x) memset(a, x, sizeof(a))
#define all(a) a.begin(), a.end()
#define All(a, n) a + 1, a + 1 + n
#define LOG 19
const int INF = 1e18;
const int mod = 1e9+7;
const int N = 1e6 + 5;
const int maxN = 2e5 + 3;
int MOD = 998244353;
int bit[200000];
struct node{
int kc, u, hk;
bool operator<(const node& other) const {
return kc > other.kc;
}
};
struct edge{
int v, w, h;
};
void nhap(){
}
void solve(){
int n; cin >> n;
int ans = 0;
for(int i = 2; i * i <= n; i++){
if(n % i == 0){
ans = i;
while(n % i == 0){
n /= i;
}
}
}
if(n > 1){
ans = n;
}
cout << ans << nn;
}
signed main() {
// freopen("uocnt.inp", "r", stdin);
// freopen("uocnt.out", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
// int t;
// cin >> t;
// while(t--) solve();
solve();
return 0;
}
LyoqCiAqICAgIGF1dGhvcjogIG9yenZhbmgxNCAoICApCiAqICAgIGNyZWF0ZWQ6IDIzLjEyLjIwMjIgMTA6MDg6MDIKICogICAgdG9vIGxhenkgdG8gdXBkYXRlIHRpbWUKKiovCi8vIGkgd2FudHMgdG8gdGFrZSBpb2kKLy9iaW5odGluaHR1dGlua2hvbmdjYXljdW5odW5nbW90a2hpa2hvbmdjb250dXRpbm51YWxhdHV5ZXR2b25nCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIG5uICJcbiIKI2RlZmluZSBwaSBwYWlyPGludCwgaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgbGIgbG93ZXJfYm91bmQKI2RlZmluZSB1YiB1cHBlcl9ib3VuZAojZGVmaW5lIGViIGVtcGxhY2VfYmFjawojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIFRBU0sgIiAiCgojZGVmaW5lIG1zKGEsIHgpIG1lbXNldChhLCB4LCBzaXplb2YoYSkpCiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSwgYS5lbmQoKQojZGVmaW5lIEFsbChhLCBuKSBhICsgMSwgYSArIDEgKyBuCgojZGVmaW5lIExPRyAxOQoKCmNvbnN0IGludCBJTkYgPSAxZTE4Owpjb25zdCBpbnQgbW9kID0gMWU5Kzc7CmNvbnN0IGludCBOID0gMWU2ICArIDU7CmNvbnN0IGludCBtYXhOID0gMmU1ICsgMzsKaW50IE1PRCA9IDk5ODI0NDM1MzsKaW50IGJpdFsyMDAwMDBdOwpzdHJ1Y3Qgbm9kZXsKCWludCBrYywgdSwgaGs7Cglib29sIG9wZXJhdG9yPChjb25zdCBub2RlJiBvdGhlcikgY29uc3QgewogICAgICAgIHJldHVybiBrYyA+IG90aGVyLmtjOwogICAgfQp9OwpzdHJ1Y3QgZWRnZXsKCWludCB2LCB3LCBoOwp9OwoKdm9pZCBuaGFwKCl7Cgp9CnZvaWQgc29sdmUoKXsKICAgIGludCBuOyBjaW4gPj4gbjsKICAgIGludCBhbnMgPSAwOwogICAgZm9yKGludCBpID0gMjsgaSAqIGkgPD0gbjsgaSsrKXsKICAgICAgICBpZihuICUgaSA9PSAwKXsKICAgICAgICAgICAgYW5zID0gaTsKICAgICAgICAgICAgd2hpbGUobiAlIGkgPT0gMCl7CiAgICAgICAgICAgICAgICBuIC89IGk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZihuID4gMSl7CiAgICAgICAgYW5zID0gbjsKICAgIH0KICAgIGNvdXQgPDwgYW5zIDw8IG5uOwp9CnNpZ25lZCBtYWluKCkgewoJLy8gZnJlb3BlbigidW9jbnQuaW5wIiwgInIiLCBzdGRpbik7CgkvLyBmcmVvcGVuKCJ1b2NudC5vdXQiLCAidyIsIHN0ZG91dCk7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJY2luLnRpZSgwKTsKCWNvdXQudGllKDApOwovLyAgICBpbnQgdDsKLy8gICAgY2luID4+IHQ7Ci8vICAgIHdoaWxlKHQtLSkgc29sdmUoKTsKICAgIHNvbHZlKCk7CglyZXR1cm4gMDsKCn0K