13
ท่องเที่ยวเวลาไพร์ม
อย่าบอกใครเลย แต่ฉันได้เปิดเครื่องการเดินทางข้ามเวลาของลุงของฉันแล้ว! ลุงของฉันหมกมุ่นอยู่กับตัวเลขสำคัญและนั่นแสดงให้เห็นในเครื่อง - เขาได้ตั้งโปรแกรมไว้เพื่อให้สามารถไปยังวันที่ที่รวมกันเป็นจำนวนเฉพาะเท่านั้น มันไม่สามารถไปได้1947-08-15เพราะ 1947 + 8 + 15 = 1970 ซึ่งไม่ใช่จำนวนเฉพาะ มันสามารถไปได้1947-07-25เพราะ 1947 + 7 + 25 = 1979 ซึ่งสำคัญมาก ดังนั้นหากฉันต้องการกลับไปดูการเฉลิมฉลองเอกราชของอินเดียดูเหมือนว่าฉันจะต้องไปไม่กี่สัปดาห์ก่อนหน้านี้และรอ 20 วันเหล่านั้น ฉันมีวันที่อื่นที่ฉันต้องการไปและฉันก็ต้องไปเดทก่อนเช่นกัน (หรือถ้าฉันโชคดีเท่ากับ) วันที่เป้าหมายของฉันซึ่งรวมกันเป็นจำนวนเฉพาะ แม้ว่าฉันใจร้อนและไม่ต้องการรอมากเกินไป - ดังนั้นฉันต้องการค้นหาวันที่ที่ฉันสามารถใช้ที่ใกล้เคียงที่สุดกับวันที่เป้าหมายของฉัน คุณสามารถเขียนโปรแกรมที่ใช้วันที่เป้าหมายของฉันและให้วันที่ฉันควรป้อนลงในไทม์แมชชีน - วันที่ที่ใกล้ที่สุดก่อนหน้าหรือเท่ากับวันที่ที่กำหนดซึ่งส่วนต่าง ๆ รวมกันเป็นจำนวนเฉพาะ? (สำหรับความท้าทายนี้เรากำลังใช้ปฏิทินเกรกอเรียนแบบproleptic - ซึ่งหมายความว่าเราใช้ปฏิทินเกรกอเรียนปัจจุบันแม้จะเป็นช่วงเวลาที่ผู้คนใช้ปฏิทินจูเลียนรุ่นเก่ากว่า) อินพุต วันที่ นึกคิดวันที่ใด ๆ ในยุคปัจจุบัน (AD); ในทางปฏิบัติชุดย่อยของภาษาของคุณสามารถจัดการได้อย่างเป็นธรรมชาติ ในรูปแบบที่มนุษย์อ่านได้เดียวที่คุณต้องการ เอาท์พุต วันที่ที่ใกล้เคียงที่สุดกับวันที่ป้อนซึ่งน้อยกว่าหรือเท่ากับอินพุทและวันที่ …