module Main where import Data.Int type MyInt = Int -- or Int64 or Integer seqLength :: MyInt -> Int seqLength x = loop x 0 where loop :: MyInt -> Int -> Int loop 1 len = len loop k len | even k = loop (k `quot` 2) $! len + 1 | otherwise = loop (3 * k + 1) $! len + 1 main :: IO () main = print $ sum $ map seqLength [1..100000]