Diferencia entre revisiones de «Implementación de algoritmos de teoría de números/Criba de Eratóstenes»

Contenido eliminado Contenido añadido
Raulshc (discusión | contribs.)
+corrección
Línea 221:
=== Haskell ===
<source lang="Haskell">
eratostenes :: [Int] {-> [Int]Lista -- Cribainfinita de Eratóstenes (de una lista dada [2..n] te deja sólotodos los números primos) -}
 
eratostenes [] = []
primos :: [Integer]
eratostenes (x:xs) | not (null xs) && x^2 > last xs = (x:xs)
primos = criba [2..]
| otherwise = x: eratostenes [y | y <- xs, y `mod` x /= 0]
where criba [] = []
criba (x:xs) = x : (criba $ limpia x xs)
limpia n = foldr (\y ys-> if mod y n == 0 then ys else y:ys) []
</source>