import Control.Applicative ((<$>)) import Data.List (group) main :: IO () main = solve <$> readLn >>= print solve :: Int -> Int solve = product . map head . filter (odd . length) . group . divs divs :: Int -> [Int] divs = f [] 3 where f rs d x | x == 1 = rs | even x = f (2:rs) d (x `div` 2) | d ^ 2 > x = f (x:rs) d 1 | x `mod` d == 0 = f (d:rs) d (x `div` d) | otherwise = f rs (d+2) x