Problem 12

http://projecteuler.net/index.php?section=problems&id=12

--Haskell, 20090104

import Sequence (trianglar)

enprimes :: Int -> Int -> [Int]
enprimes 1 _ = []
enprimes s n = let t = takeWhile ((==0).(s`mod`)) (iterate (*n) 1)
               in length t - 1 : enprimes (s`div`(last t)) (n+1)

main = print $ head [x | x<-trianglar, (product.map (+1).enprimes x) 2 > 500]

数列モジュールを使用.改善の余地あり.