Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import System.IO
- import Control.Monad
- import Data.List
- main = do
- cases <- readLn
- replicateM_ cases $ do
- num <- readLn
- print $ z num
- -- Attempt 1: 4.76s
- z :: Int -> Int
- z num = sum . takeWhile (> 0) $ map (\n -> num `div` (5^n)) [1..num]
- -- Twey's iterate version 4.43s
- z2 :: Int -> Int
- z2 = sum . takeWhile (> 0) . drop 1 . iterate (`quot` 5)
- -- Switched to foldl' 4.75s
- z3 :: Int -> Int
- z3 = foldl' (+) 0 . takeWhile (> 0) . drop 1 . iterate (`quot` 5)
Add Comment
Please, Sign In to add comment