19 lines
472 B
Haskell
19 lines
472 B
Haskell
import Data.List (scanl)
|
|
import Data.Numbers.Primes (isPrime, primes)
|
|
|
|
--------------- PRIME SUMS OF FIRST N PRIMES -------------
|
|
|
|
indexedPrimeSums :: [(Integer, Integer, Integer)]
|
|
indexedPrimeSums =
|
|
filter (\(_, _, n) -> isPrime n) $
|
|
scanl
|
|
(\(i, _, m) p -> (succ i, p, p + m))
|
|
(0, 0, 0)
|
|
primes
|
|
|
|
--------------------------- TEST -------------------------
|
|
main :: IO ()
|
|
main =
|
|
mapM_ print $
|
|
takeWhile (\(_, p, _) -> 1000 > p) indexedPrimeSums
|