0votos

primos y primos gemelos en c++ en Haskell

por josejuan hace 4 años

Otra.

el usuario ingresa un numero positivo y el programa devuelve los numeros primos menores a ese numero y cambiar a color verde los primos gemelos , en c++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import System.Console.ANSI 
import Data.Numbers.Primes 
import Control.Monad 
 
-- Lista infinita de todos los primos, pero indicando si son gemelos o no 
primes' = next primes False 
          where next (x:y:zs) t = (x, t || t'): next (y:zs) t' 
                                  where t' = y - x == 2 
 
 
-- En lugar de los infinitos primos, sólo aquellos hasta cierta cota 
primesToN n = takeWhile ((<=n).fst) primes' 
 
 
-- Imprime un primo conociendo si es gemelo o no 
printPrime (p, isTwin) = do 
  setSGR [ SetColor Foreground Dull $ if isTwin then Red else Green ] 
  putStr $ show p ++ ", " 
 
 
-- Junta todo lo anterior 
printPrimes n = do forM_ (primesToN n) printPrime 
                   setSGR [] 
1 comentario

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.