| Copyright | Exercitium (13-06-14) |
|---|---|
| License | GPL-3 |
| Maintainer | JoseA.Alonso@gmail.com |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Orbita_prima
Description
Órbita prima
La órbita prima de un número n es la sucesión construida de la siguiente forma:
- si n es compuesto su órbita no tiene elementos
- si n es primo, entonces n está en su órbita; además, sumamos n y sus dígitos, si el resultado es un número primo repetimos el proceso hasta obtener un número compuesto.
Por ejemplo, con el 11 podemos repetir el proceso dos veces
- 3 = 11+1+1
- 17 = 13+1+3
Así, la órbita prima de 11 es 11, 13, 17.
Definir la función
orbita :: Integer -> [Integer]
tal que (orbita n) es la órbita prima de n. Por ejemplo,
>>>orbita 11[11,13,17]>>>orbita 59[59,73,83]
Calcular el menor número cuya órbita prima tiene más de 3 elementos.
Documentation
esPrimo :: Integer -> Bool Source #
(esPrimo n) se verifica si n es primo. Por ejemplo,
>>>esPrimo 17True>>>esPrimo 21False
cifras :: Integer -> [Integer] Source #
(cifras n) es la lista de las cifras de n. Por ejemplo,
>>>cifras 32542[3,2,5,4,2]
prop_equiv_orbita :: Integer -> Bool Source #
(prop_equiv_orbita n) se verifica si las definiciones de
orbita son equivalentes sobre n. Por ejemplo,
>>>all prop_equiv_orbita [11, 59]True
verifica_equiv_orbita :: IO () Source #
Comprueba la equivalencia de las definiciones de orbita.
>>>verifica_equiv_orbita+++ OK, passed 100 tests.