import qualified Data.Set as S import Control.Monad snub = S.toList . S.fromList main = readLn >>= print . uid uid n = length $ snub $ concat $ do d <- [1 .. floor (sqrt (fromIntegral n))] let (q,r) = divMod n d guard (r == 0) return [show d ++ show q, show q ++ show d]