euler/Problem3.hs

11 lines
402 B
Haskell

-- 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