Actualización de «Números polidivisibles»
He actualizado las soluciones del ejercicio «Números polidivisibles» cuyo enunciado es
Un número natural es polidivisible si cumple las siguientes condiciones:
- El número formado por sus dos primeros dígitos es divisible por 2.
- El número formado por sus tres primeros dígitos es divisible por 3.
- El número formado por sus cuatros primeros dígitos es divisible por 4.
- etcétera.
Por ejemplo, el número 345654 es un número polidivisible ya que
- 34 es divisible por 2,
- 345 es divisible por 3,
- 3456 es divisible por 4,
- 34565 es divisible por 5 y
- 345654 es divisible por 6.
pero 123456 no lo es, porque 1234 no es divisible por 4.
Definir las funciones
polidivisibles :: [Integer] polidivisiblesN :: Integer -> [Integer]
tales que
-
polidivisiblees la sucesión cuyos elementos son los números polidivisibles. Por ejemplo,
λ> take 20 polidivisibles [1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,22,24,26,28,30] λ> take 10 (dropWhile (<100) polidivisibles) [102,105,108,120,123,126,129,141,144,147] λ> polidivisibles !! 20455 3608528850368400786036725
-
(polidivisiblesN k)es la lista de los números polidivisibles conkdígitos. Por ejemplo,
λ> polidivisiblesN 2 [10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48, 50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88, 90,92,94,96,98] λ> polidivisiblesN 25 [3608528850368400786036725] (0.01 secs, 615,984 bytes) λ> polidivisiblesN 26 []
Comprobar que, para n entre 1 y 5, la cantidad de números polidivisibles de n dígitos es
\[\frac{9 \times 10^{n-1}}{n!}\]
Nota: Puedes consultar las soluciones aquí.