import Data.List (nub) divisors :: Integral a => a -> [a] divisors 1 = [1] divisors n = (1 :) $ (n :) $ nub $ concat [[x, d] | x <- [2 .. l], let (d, m) = divMod n x, m == 0] where l = floor $ sqrt $ fromIntegral n main :: IO () main = print . sum . divisors . (\n -> if odd n then n else div n 2) =<< readLn