-- The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. -- The first ten terms would be: -- -- 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... -- -- Let us list the factors of the first seven triangle numbers: -- -- 1: 1 -- 3: 1,3 -- 6: 1,2,3,6 -- 10: 1,2,5,10 -- 15: 1,3,5,15 -- 21: 1,3,7,21 -- 28: 1,2,4,7,14,28 -- -- We can see that 28 is the first triangle number to have over five divisors. -- -- What is the value of the first triangle number to have over five hundred divisors? import Data.List (nub) import ProjectEuler (countDivisors) triangNumbers :: [Int] triangNumbers = scanl1 (+) [1..] triang500 :: Int triang500 = head [ x | x <- triangNumbers, countDivisors x > 500 ] main = do let result = triang500 putStrLn $ "Project Euler, Problem 12\n" ++ "Answer: " ++ (show result)