아무에게도 말하지 말아라, 나는 나의 아저씨의 시간 여행 기계를 쳤다! 내 아저씨는 소수에 집착하고 기계에 표시됩니다. 그는 소수에 이르는 날짜로만 갈 수 있도록 프로그래밍했습니다.
따라서 1947-08-15
1947 + 8 + 15 = 1970이기 때문에 갈 수 없습니다 . 소수가 아닙니다. 이 수 에 가서 1947-07-25
1947 + 7 = 1979 + 25, 소수 인 때문에. 다시 인도 독립 기념 행사를 보러 가려면 몇 주 전에 가서 20 일을 기다려야 할 것 같습니다.
나는 가고 싶은 다른 날짜가 있고, 마찬가지로 목표 날짜 이전 (또는 운이 좋으면 같은 경우)까지의 날짜로 가야합니다.이 숫자는 소수입니다. 나는 참을성이 없어서 너무 기다리기를 원하지 않는다. 그래서 내가 사용할 수있는 날짜를 목표 날짜와 가장 가까운 곳에서 찾고 싶다.
목표 날짜를 가져와 타임머신에 입력해야하는 날짜를 알려주는 프로그램을 작성할 수 있습니까? 부품이 소수에 해당하는 지정된 날짜 이전 또는 가장 가까운 날짜입니다.
(이 문제를 해결하기 위해 우리는 독창적 인 그레고리력을 사용하고 있습니다. 즉, 사람들이 이전 율리우스 력을 사용하던 기간에도 현재 그레고리력을 사용한다는 의미입니다.)
입력
- 날짜
- 이상적으로, 현재 시대 (AD)의 모든 날짜; 실제로, 귀하의 언어 중 일부만 자연스럽게 처리 할 수있는 것은 무엇이든
- 원하는 사람이 읽을 수있는 형식으로
산출
- 입력 날짜와 가장 근접한 날짜이며 입력 날짜보다 작거나 같고 날짜 + 월 + 년이 소수입니다.
- 원하는 사람이 읽을 수있는 형식으로
⁺ : 일, 월, 연도에서 "인간이 읽을 수있는"순서대로, 모든 철자가 표기 됨
테스트 사례
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
(질문에 도움을 주신 @Shaggy, @PeterTaylor 및 @Arnauld에게 감사합니다.)
Fri Jul 25 02:46:39 CEST 1947
)