Números con la misma cantidad de anteriores con 1 que sin 1
Una propiedad del número 24 es que entre los números menores o iguales que 24 hay la misma cantidad de números con el dígito 1 que sin el 1; en efecto, los que tienen 1 son
1 |
[1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21] |
y los que no lo tienen son
1 |
[2, 3, 4, 5, 6, 7, 8, 9, 20, 22, 23, 24] |
Diremos que un número es especial si cumple dicha propiedad.
Definir la sucesión
1 |
especiales :: [Integer] |
cuyos elementos son los números especiales. Por ejemplo,
1 |
take 10 especiales == [2,16,24,160,270,272,1456,3398,3418,3420] |
Soluciones
1 2 3 4 5 6 7 |
import Data.List (genericLength) especiales :: [Integer] especiales = [n | n <- [2,4..], especial n] especial :: Integer -> Bool especial n = genericLength [x | x <- [1..n], '1' `elem` show x] == n `div` 2 |