Ir al contenido (saltar navegación)

Computus Algoritmicus

Tiempo máximo: 1,000 sMemoria máxima: 4096 KiB
Dionisio el Exiguo

Todos los años cuando se acerca la Semana Santa surge la misma pregunta. ¿Por qué la fecha exacta cambia de un año a otro?

Hace 1.500 años no existía la electricidad, ni la iluminación a gas, ni se habían inventado las farolas. Así que caminar por las calles en una noche sin luna podía resultar un tanto complicado. Por ello, el monje y erudito Dionisio el Exiguo (que era bajito, pero muy inteligente) convenció al Papa para que la Semana Santa se celebrase siempre en primavera y en tiempo de luna llena.

En concreto, en el año 525 Dionisio reflejó este cálculo, vigente hoy en día, en el llamado Computus: "el Domingo de Pascua será el primer domingo posterior a la primera luna llena posterior al equinocio de primavera".

Muchos siglos después, Carl Friedrich Gauss (que no era tan bajo, aunque nació en la Baja Sajonia) desarrolló un algoritmo para el cálculo del Computus. Sea A el año en cuestión, y MN dos variables que van cambiando dependiendo del siglo (para el siglo XX fueron 24 y 5 respectivamente, coincidiendo, curiosamente, con los valores para el siglo XXI). El algoritmo de Gauss es el siguiente:

  • Sea a el resto de la división A/19.
  • Sea b el resto de la división A/4.
  • Sea c el resto de la división A/7.
  • Sea d el resto de la división (19a + M)/30.
  • Sea e el resto de la división (2b + 4c + 6d + N)/7.
  • Si d + e es menor que 10, entonces el Domingo de Pascua es el (d + e + 22) de marzo.
  • En caso contrario, el Domingo de Pascua es el (d + e - 9) de abril.

Hay que tener en cuenta, no obstante, que en ocasiones falla retrasando la fecha una semana. En concreto:

  • Si la fecha obtenida es el 26 de abril, debe cambiarse por el 19 de abril.
  • Si el resultado final conseguido es el 25 de abril con d=28, entonces la fecha correcta es el 18 de  abril.

Dado un año entre 1900* y 2099, inclusive, debes calcular en qué día cae el Domingo de Pascua usando el algoritmo de Gauss.

Entrada

La entrada está compuesta por distintos casos de prueba, cada uno en una línea. Cada una de ellas tendrá un único número entero, el número A del año (entre 1900 y 2099).

Tras el último caso de prueba vendrá una línea con un 0 que no debe ser procesada.

Salida

Por cada caso de prueba se escribirá una línea indicando el día en que cae el Domingo de Pascua. La fecha se escribirá con el formato x de marzo o y de abril.

Entrada de ejemplo

2019
2002
1992
0

Salida de ejemplo

21 de abril
31 de marzo
19 de abril
1Para este problema, los siglos comienzan en el año terminado en 00.