//60分,其他全RE , 虽然我的方法很铸币(
#include <bits/stdc++.h>
using namespace std;
long long st[100001] , prime[100001];
long cnt;
void get_prime (int n)
{
for (int i = 2; i <= n; i++)
{
if (!st[i])
{
prime[cnt++] = i;
for (int j = i * 2; j <= n; j+=i)
{
st[j] = true;
}
}
}
}
int main ()
{
long long x;
cin >> x;
get_prime(x);
int ans;
for (int i = cnt - 1; i >= 0; i --)
{
if (x % prime[i] == 0)
{
ans = prime[i];
cout << ans;
break;
}
}
}