Guest User

Untitled

a guest
Jul 17th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. import System.IO
  2. import Control.Monad
  3. import Data.List
  4.  
  5. main = do
  6. cases <- readLn
  7. replicateM_ cases $ do
  8. num <- readLn
  9. print $ z num
  10.  
  11. -- Attempt 1: 4.76s
  12. z :: Int -> Int
  13. z num = sum . takeWhile (> 0) $ map (\n -> num `div` (5^n)) [1..num]
  14.  
  15. -- Twey's iterate version 4.43s
  16. z2 :: Int -> Int
  17. z2 = sum . takeWhile (> 0) . drop 1 . iterate (`quot` 5)
  18.  
  19. -- Switched to foldl' 4.75s
  20. z3 :: Int -> Int
  21. z3 = foldl' (+) 0 . takeWhile (> 0) . drop 1 . iterate (`quot` 5)
Add Comment
Please, Sign In to add comment