与えられた数字のケタ数
http://ja.doukaku.org/40/より。ふつうです。Integerを使ってIntの制限を越えられるようにしてみました。こういう場合は、Data.ListモジュールのgenericXXX関数を使います。
module Main (main) where import Data.List (genericLength) keta :: Integer -> (Integer, Integer) keta n = let k = genericLength $ show n in (k, 10 ^ (k - 1)) main :: IO () main = mapM_ (print . keta) [2469, 600, 1] -- => (4,1000) -- (3,100) -- (1,1)