#include <iostream>
using namespace std;
bool prim(unsigned long long m)
{
if (m==0 || m==1) return false;
if (m==2) return true;
if (m>2)
{
if (m%2==0) return false;
else
{
for (int i=3; i*i<=m; ++i)
if (m%i==0) return false;
}
return true;
}
}
int main()
{
int n, divmax;
cin >> n;
if (prim(n)) cout << n;
else
{
int d, divmax=1;
for (d=2; d*d<=n; ++d)
if (n%d==0)
{
if (prim(d) && d>divmax) divmax=d;
if (prim(n/d) && (n/d)>divmax) divmax=n/d;
}
cout << divmax;
}
return 0;
}