import Control.Applicative ((<$>)) import Data.List (find) main :: IO () main = solve <$> read <$> getLine >>= print solve :: Int -> Int solve n = maybe m id . find ((== 0) . (mod n)) . takeWhile ((<= n) . (^ 2)) $ [3 ..] where m = if even n then n `div` 2 else n