#include #include #include #include #include using namespace std; bool isprime[1000000]; void search(int n) { memset(isprime, true, sizeof(isprime)); isprime[0] = false; isprime[1] = false; for(int i = 2; i < sqrt(n); i++) { if(isprime[i]) { for(int j = 0; i * (j + 2) < n; j++) { isprime[i * (j + 2)] = false; } } } } using ll = long long int; int main() { ll N; cin >> N; search(N); ll num = 0ll; for(int i = 0; i < sqrt(N); i++) { if(isprime[i]) { if(N % i == 0) { num = i; } } } cout << num << endl; return 0; }