1votos

Cálculo primer número primo sumatorio de otros 2 primos en Haskell

por josejuan hace 5 años

De entre los primeros N primos, todos los que son suma de dos primos. Usa al 100% todas las CPU disponibles.

Implementar una función en C# que devuelva el primer número primo sumatorio de otros 2 primos, preferiblemente usando expresiones lambda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import Data.Numbers.Primes  
import System.Environment 
import Control.Monad 
import Control.Concurrent.ParallelIO 
  
primes2 :: Integer -> IO () 
primes2 n = r $ take (fromIntegral n) primes 
    where r (p:ps) = parallel_ [w p ps, r ps] 
          r [] = return () 
          w p (q:qs) = (when (isPrime $ p + q) $ print $ p + q) >> w p qs 
          w _ [] = return () 
           
main = getArgs >>= return.read.head >>= primes2 
 
{- 
 
$ time -f "%E, %M" ./primes2 30000 +RTS -N6 | tail 
0:13.13, 76716 
348463 
348919 
348991 
349081 
349381 
349399 
349411 
349831 
349933 
350089 
 
 
-} 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.