-- Which prime, below one-million, can be written as the sum of the most -- consecutive primes? import Euler intersectOn' :: (a -> b -> Ordering) -> [a] -> [b] -> [b] intersectOn' _ [] _ = [] intersectOn' _ _ [] = [] intersectOn' f (x:xs) (y:ys) = case f x y of LT -> intersectOn' f xs (y:ys) EQ -> y : intersectOn' f xs ys GT -> intersectOn' f (x:xs) ys primeSums = concat $ map (intersectOn' (\p (_,q) -> compare p q) primes) $ map (zip [1..] . takeWhile (< 1000000) . tail . scanl' (+) 0) $ tails $ takeWhile (< 50000) $ primes main = print $ snd $ maximumBy (compare `on` fst) $ primeSums