main :: IO () main = putStr . fizzbuzz . (read :: String -> Integer) =<< getLine fizzbuzz :: (Integral a, Show a) => a -> String fizzbuzz 0 = "" fizzbuzz n | n `mod` 15 == 0 = fizzbuzz (n - 1) ++ "FizzBuzz\n" | n `mod` 3 == 0 = fizzbuzz (n - 1) ++ "Fizz\n" | n `mod` 5 == 0 = fizzbuzz (n - 1) ++ "Buzz\n" | otherwise = fizzbuzz (n - 1) ++ show n ++ "\n"