¡No se lo digas a nadie, pero he robado la máquina de viaje en el tiempo de mi tío! Sin embargo, mi tío está obsesionado con los números primos, y eso se nota en la máquina: lo ha programado para que solo pueda ir a fechas que sumen un número primo.
Entonces no puede ir 1947-08-15
porque 1947 + 8 + 15 = 1970, que no es un número primo. Se puede ir a 1947-07-25
, ya que 1947 + 7 + 25 = 1979, que es primo. Entonces, si quiero volver a ver las celebraciones de independencia de la India, parece que tendré que ir unas semanas antes y esperar esos 20 días.
Tengo otras fechas a las que quiero ir, y de manera similar tendré que ir a una fecha anterior (o si tengo suerte, igual a) mi fecha objetivo, que se resume en un número primo. Sin embargo, soy impaciente y no quiero esperar demasiado, así que quiero encontrar la fecha que pueda usar que sea más cercana a mi fecha objetivo.
¿Me puede escribir un programa que tome mi fecha objetivo y me dé la fecha que debo ingresar en la máquina del tiempo, la fecha más cercana antes o igual a la fecha dada cuyas partes suman un número primo?
(Para este desafío, estamos utilizando el calendario gregoriano proleptico , lo que simplemente significa que usamos el calendario gregoriano actual incluso para los períodos en que las personas usaban el calendario juliano más antiguo).
Entrada
- Una cita
- idealmente, cualquier fecha en la Era Actual (AD); prácticamente, cualquier subconjunto de ese que su idioma pueda manejar naturalmente
- en cualquier formato legible por humanos que desee
Salida
- La fecha más cercana a la fecha de entrada, que es menor o igual a la entrada y cuya fecha + mes + año suma un número primo.
- en cualquier formato legible por humanos que desee
⁺: "legible por humanos" como en el día, mes y año, todo enunciado por separado, en cualquier orden
Casos de prueba
1947-08-15
=> 1947-07-25
1957-10-04
=> 1957-09-27
1776-07-04
=> 1776-07-04
999-12-12
=> 0999-12-10
2018-06-20
=> 2018-06-15
1999-01-02
=> 1998-12-29
1319-12-29
=> 1319-07-01
(Gracias a @Shaggy, @PeterTaylor y @Arnauld por su ayuda con la pregunta).
Fri Jul 25 02:46:39 CEST 1947
. ej. )