17. haskell
main = do firstFactorOver(3)
firstFactorOver n = head [trianguleNumber(x) | x <- [1..], length ( factorsOf ( trianguleNumber(x) ) ) > n ]
trianguleNumber n = sum[1..n]
factorsOf number = 1:[x| x <- [2..number], number `mod` x == 0] ++ [number]