Árbol binario de divisores

El árbol binario de los divisores de 24 es

Se puede representar por

usando el tipo de dato definido por

Análogamente se obtiene el árbol binario de cualquier número x: se comienza en x y en cada paso se tiene dos hijos (su menor divisor y su cociente) hasta obtener números primos en las hojas.

Definir las funciones

tales que

  • (arbolDivisores x) es el árbol binario de los divisores de x. Por ejemplo,

  • (hojasArbolDivisores x) es la lista de las hohas del árbol binario de los divisores de x. Por ejemplo

Soluciones

Pensamiento

Cuando el Ser que se es hizo la nada
y reposó que bien lo merecía,
ya tuvo el día noche, y compañía
tuvo el amante en la ausencia de la amada.

Antonio Machado

Primos o cuadrados de primos

Definir la constante

cuyos elementos son los número primos o cuadrados de primos. Por ejemplo,

Comprobar con QuickCheck que las lista primosOcuadradosDePrimos y unifactorizables (definida en el ejercicio anterior) son iguales.

Soluciones

Pensamiento

Despacito y buena letra: el hacer las cosas bien importa más que el hacerlas.

Antonio Machado

Sublistas con producto dado

Definir las funciones

tales que

  • (sublistasConProducto n xs) es la lista de las sublistas de la lista ordenada estrictamente creciente xs (cuyos elementos son enteros mayores que 1) cuyo producto es el número entero n (con n mayor que 1). Por ejemplo,

  • unifactorizables es la lísta de los números enteros mayores que 1 que se pueden escribir sólo de una forma única como producto de enteros distintos mayores que uno. Por ejemplo,

Soluciones

Pensamiento

Y en el encinar,
¡luna redonda y beata,
siempre conmigo a la par!
Cerca de Úbeda la grande,
cuyos cerros nadie verá,
me iba siguiendo la luna
sobre el olivar.
Una luna jadeante,
siempre conmigo a la par.

Antonio Machado

Mayor producto de n dígitos consecutivos de un número

Definir la función

tal que (mayorProducto n x) es el mayor producto de n dígitos consecutivos del número x (suponiendo que x tiene al menos n dígitos). Por ejemplo,

Nota: Este ejercicio está basado en el problema 8 del Proyecto Euler

Soluciones

Pensamiento

«El control de la complejidad es la esencia de la programación.» ~ B.W. Kernigan

Menor número triangular con más de n divisores

La sucesión de los números triangulares se obtiene sumando los números naturales.

Así, el 7º número triangular es

Los primeros 10 números triangulares son

Los divisores de los primeros 7 números triangulares son:

Como se puede observar, 28 es el menor número triangular con más de 5 divisores.

Definir la función

tal que (menorTriangularConAlMenosNDivisores n) es el menor número triangular que tiene al menos n divisores. Por ejemplo,

Nota: Este ejercicio está basado en el problema 12 del Proyecto Euler

Soluciones

Pensamiento

«La Matemática es una ciencia experimental y la computación es el experimento.» ~ Rivin