Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- I put this as a guest first, it was a mistake...
- -- ### Project Euler, problem 187 ### --
- listPrimes n = takeWhile (<= n) allPrimes
- allPrimes = 2 : filter isPrime [3,5..]
- where
- isPrime n = all (/= 0) $ map (n `mod`) [2..squareRoot n]
- squareRoot = truncate . sqrt . fromIntegral
- factors n = f n (reverse $ listPrimes n)
- where
- f _ [] = []
- f 1 _ = []
- f m l@(x:xs) | m `mod` x == 0 = x : f (m `div` x) l
- | otherwise = f m xs
- solveit n = length . filter ((==2) . length) $ map factors [1..n]
- main = do
- putStrLn . show $ solveit (10^8)
Advertisement
Add Comment
Please, Sign In to add comment