// #pragma GCC optimize ("Ofast") // #pragma GCC optimize ("unroll-loops") // #pragma GCC target ("avx,avx2,fma") #include using std::cin, std::cout, std::cerr; using ll = long long; int main() { std::ios::sync_with_stdio(false); ll n; cin >> n; ll ans = n; auto upd = [&](ll x) { if(x > 2) ans = std::min(ans, x); }; for(ll d = 1; d * d <= n; d ++) if(n % d == 0) { upd(d); upd(n / d); } cout << ans << '\n'; }