I1M2012: Último dígito del producto de números de Fermat

En la segunda 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 (IMO) de 1971. Su enunciado es

Sea x_n = 2^{2^n} + 1 y sea m el producto de x_2, x_3, \dots, x_{1971}. Calcular el último dígito de m.

La primera definición es la traducción directa del enunciado

donde (x n) es el n-ésimo término de la sucesión

y (ultimo x) es el último dígito de x

Aunque la primera solución es simple, tiene un inconveniente: Haskell no puede calcular números tan grandes. Una estrategia para resolverlo es considerar casos menores y buscar alguna regularidad. Para ello, generalizamos la primera solución sustituyendo 1971 por una variable.

Con la 2ª definición calculamos el último dígito de los primeros productos

Se observa que el resultado está formado por la repetición de los números 7, 9, 3 y 1. A partir de la observación conjeturamos una nueva definición

Podemos comprobar, para pequeños valores, que las 2 definiciones son equivalentes

Además, con la 3ª definición se puede calcular la solución del problema original

es decir, el último dígito del producto x_2x_3 \dots x_{1971} es 9.

Para justificar la solución, hay que demostrar que la definición sol3 es correcta; es decir, que los últimos dígitos de los productos forman la sucesión 7, 9, 3, 1, 7, 9, 3, 1, 7, 9, 3, 1, 7, 9, 3, 1, 7, 9, 3, … Para ello, observamos el último dígito de los x_n

Se observa que todos son 7. Esto justifica la sucesión de los productos, ya que cada término es el último dígito del producto del anterior por 7. Además, permite una nueva definición de la solución por recursión

Podemos comprobar, para pequeños valores, que es equivalente a la anterior

Para terminar, sólo queda demostrar que si n>1, entonces el último dígito de 2^{2^n} + 1 es 7 o, equivalentemente, que el último dígito de 2^{2^n} es 6. Lo que se tiene ya que 2^{2^n} = 2^{2\cdot2^{n-1}} = (2^2)^{2^{n-1}} = 4^{2^{n-1}}. Además, como n>1 se tiene que 2^{n-1} es un número par mayor que 0 y, por tanto, el último dígito de 4^{2^{n-1}} es 6.