I1M2012: Número con mayor cantidad de divisores

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentado la solución con Haskell de un problema propuesto para la Olimpiada Internacional de Matemáticas de 1983. Su enunciado es

”¿Cuál de los números 1, 2, …, 1983 tiene mayor número de divisores?”

Se van a presentar distintas soluciones y comparar sus eficiciencias. La primera definición es

donde (divisores1 n) es el conjunto de los divisores de n.

El cálculo con la primera definición es

En la segunda definición se cambia la definición de divisores

El cálculo con la segunda definición es

En la tercera definición se ordenan los pares

El cálculo con la tercera definición es

Se observa que el tiempo se ha reducido de 9.00 segundos a 2.76.