-- What is the largest prime factor of the number 600851475143 ? n `divides` m = m `mod` n == 0 primes = go [2..] where go (p:ps) = p : go (filter (\n -> not (p `divides` n)) ps) factors n = go primes n where go (p:ps) n | n < p = [] | p `divides` n = p : go (p:ps) (n `div` p) | otherwise = go ps n main = print $ last $ factors 600851475143