Summarize primes: Difference between revisions
Content deleted Content added
m add n to output |
m →{{header|Haskell}}: Added a draft in Haskell |
||
Line 69: | Line 69: | ||
</pre> |
</pre> |
||
=={{header|Haskell}}== |
|||
<lang haskell>import Control.Monad (join) |
|||
import Data.List (mapAccumL) |
|||
import Data.Numbers.Primes (isPrime, primes) |
|||
--------------- PRIME SUMS OF FIRST N PRIMES ------------- |
|||
indexedPrimeSums :: [(Integer, Integer, Integer)] |
|||
indexedPrimeSums = |
|||
let ps = primes |
|||
in filter (\(_, _, n) -> isPrime n) $ |
|||
zip3 |
|||
[1 ..] |
|||
ps |
|||
( snd $ |
|||
mapAccumL |
|||
(\n a -> join (,) (n + a)) |
|||
0 |
|||
ps |
|||
) |
|||
--------------------------- TEST ------------------------- |
|||
main :: IO () |
|||
main = |
|||
mapM_ print $ |
|||
takeWhile (\(_, p, _) -> 1000 > p) indexedPrimeSums</lang> |
|||
{{Out}} |
|||
<pre>(1,2,2) |
|||
(2,3,5) |
|||
(4,7,17) |
|||
(6,13,41) |
|||
(12,37,197) |
|||
(14,43,281) |
|||
(60,281,7699) |
|||
(64,311,8893) |
|||
(96,503,22039) |
|||
(100,541,24133) |
|||
(102,557,25237) |
|||
(108,593,28697) |
|||
(114,619,32353) |
|||
(122,673,37561) |
|||
(124,683,38921) |
|||
(130,733,43201) |
|||
(132,743,44683) |
|||
(146,839,55837) |
|||
(152,881,61027) |
|||
(158,929,66463) |
|||
(162,953,70241)</pre> |
|||
=={{header|Julia}}== |
=={{header|Julia}}== |