module Main (main) where
fromDecimal :: (Integral a) => a -> a -> a
fromDecimal n x = f 0 x 1
where
f r 0 _ = r
f r y z = f (r + (y `mod` 10) * z) (y `div` 10) (z * n)
main :: IO ()
main = putStr $ show $ head $ filter (\x -> fromDecimal 13 x `mod` x == 0) [10..]
実行。
^o^ >runhaskell multiple13.hs 1557