#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <bits/stdc++.h>
#include <math.h>
#include <string>
#include <cstring>
using namespace std;
//#define PI 3.1415926
bool isprime[20000100]={0};
int zhishu(long long n)
{
memset(isprime,true,sizeof(isprime));
isprime[1] = false;
for(int i = 2;i <= n;i++)
{
if(isprime[i])
{
for(int j = 2;j*i <= n;j++)
{
isprime[i*j] = false;
}
}
}
return 0;
}
int main()
{
long long n,max;
long long shuzu[100000100];
int shuliang;
cin >> n;
zhishu(n);
for(int i = 1,j = 0;i <= n;i++)
{
if(isprime[i])
{
shuzu[j] = i;
//cout << shuzu[j] <<endl;
j+=1;
shuliang = j-1;
}
}
for(int i = 0;i <= shuliang;i++)
{
for(int j = 0;j <= shuliang;j++)
{
if(shuzu[i]*shuzu[j] == n&&(i >= max||j >= max))
{
if(shuzu[i] > shuzu[j])
{
max = shuzu[i];
}
else if(shuzu[i] < shuzu[j])
max = shuzu[j];
}
}
}
cout << max;
return 0;
}