Tracks
/
Haskell
Haskell
/
Ejercicios
/
Productos palíndromos
Productos palíndromos

Productos palíndromos

Intermedia

Instrucciones

Detecta productos palíndromos en un rango dado.

Un número palindrómico es un número que sigue siendo el mismo cuando se invierten sus dígitos. Por ejemplo, 121 es un número palindrómico, pero 112 no lo es.

Dado un rango de números, encuentra los palíndromos más grande y más pequeño que sean productos de dos números dentro de ese rango.

Tu solución debe devolver los palíndromos más grande y más pequeño, junto con los factores de cada uno dentro del rango. Si el palíndromo más grande o más pequeño tiene más de un par de factores dentro del rango, devuelve todos los pares.

Ejemplo 1

Dado el rango [1, 9] (ambos inclusive)...

Y dada la lista de todos los productos posibles dentro de este rango: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 15, 21, 24, 27, 20, 28, 32, 36, 25, 30, 35, 40, 45, 42, 48, 54, 49, 56, 63, 64, 72, 81]

Los productos palíndromos son todos números de un solo dígito (en este caso): [1, 2, 3, 4, 5, 6, 7, 8, 9]

El producto palíndromo más pequeño es 1. Sus factores son (1, 1). El producto palíndromo más grande es 9. Sus factores son (1, 9) y (3, 3).

Ejemplo 2

Dado el rango [10, 99] (ambos inclusive)...

El producto palíndromo más pequeño es 121. Sus factores son (11, 11). El producto palíndromo más grande es 9009. Sus factores son (91, 99).

Pistas

Para resolver este ejercicio necesitas implementar estas dos funciones:

  • largestPalindrome
  • smallestPalindrome

Ambas funciones reciben un límite inferior y uno superior de factores, y devuelven un par (value, [(factor1, factor2)]) que contiene el palíndromo y sus posibles pares de factores.

Puedes usar las firmas que te damos si tienes dudas sobre los tipos, pero no dejes que limiten tu creatividad.

No hay problema si devuelves duplicados en el array de factores, y el orden de los factores es irrelevante.

Considera usar un algoritmo un poco distinto para encontrar palíndromos pequeños o grandes.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Haskell Exercism

¿Todo listo para empezar Productos palíndromos?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.