10/23/2010

Project Euler - Problem 3

I solved this in standard and boring way.
import System.IO
main = do
putStrLn $ show $ last $ filter ((== 0) . (mod 600851475143)) (takeWhile (< (truncate (sqrt 600851475143))) prime)
prime = 2:f [3] [3,5..]
where f (x:xs) ys = let (ps, qs) = span (< x^2) ys
in ps ++ f (xs ++ ps) [z | z <- qs, z `mod` x /= 0]
view raw gistfile1.hs hosted with ❤ by GitHub

No comments:

Post a Comment