Project Euler: Problem47
決して暇なわけではない。
import Data.List prime = p [2..] where p (x:xs) = x : p (filter (\y -> rem y x /= 0) xs) factor n = f n prime where f 1 _ = [] f n (p:ps) | rem n p == 0 = p : f (div n p) (p:ps) | otherwise = f n ps finder 4 (x:_) = let r = product x in [r-4,r-3,r-2,r-1] finder n (x:xs) | length (nub x) == 4 = finder (n+1) xs | otherwise = finder 0 xs main = print $ finder 0 $ map factor [2..]