thoga31

Project Euler, problem 3

Mar 22nd, 2014
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. euler3 = last . primeFactors allPrimes
  2.   where
  3.     primeFactors _ 1 = []
  4.     primeFactors p@(y:ys) x | x `mod` y == 0 = y : primeFactors p (x `div` y)
  5.                             | otherwise      = primeFactors ys x
  6.  
  7.     isPrime x = all (/= 0) . map (x `mod`) $ [2..sqrRoot x]
  8.     sqrRoot = truncate . sqrt . fromIntegral
  9.     allPrimes = 2 : filter (isPrime) [3,5..]
  10.  
  11. main = do
  12.   putStrLn . show . euler3 $ 13195
  13.   putStrLn . show . euler3 $ 600851475143
Advertisement
Add Comment
Please, Sign In to add comment