किसी को मत बताना, लेकिन मैंने अपने चाचा के टाइम ट्रैवल मशीन को बंद कर दिया है! हालाँकि, मेरे चाचा प्राइम नंबरों के प्रति आसक्त हैं, और वह मशीन में शो करते हैं - उन्होंने इसे क्रमबद्ध किया है ताकि यह केवल उन नंबरों पर जा सके जो एक प्राइम नंबर तक हैं।
इसलिए यह 1947-08-15
1947 + 8 + 15 = 1970 पर नहीं जा सकता, जो कि एक प्रमुख संख्या नहीं है। यह जा सकता है 1947-07-25
, क्योंकि 1947 + 7 + 25 = 1979, जो कि प्रमुख है। इसलिए अगर मैं भारत के स्वतंत्रता समारोह को देखने के लिए वापस जाना चाहता हूं, तो ऐसा लगता है कि मुझे कुछ हफ्ते पहले जाना होगा और उन 20 दिनों का इंतजार करना होगा।
मेरे पास कुछ अन्य तिथियां हैं, जिन्हें मैं जाना चाहता हूं, और मुझे इसी तरह अपनी तिथि से पहले (या यदि मैं भाग्यशाली हूं, तो) एक तारीख पर जाना होगा, जो एक प्रमुख संख्या तक होती है। हालांकि, मैं अधीर हूं, और बहुत ज्यादा इंतजार नहीं करना चाहता हूं - इसलिए मैं वह तिथि ढूंढना चाहता हूं जो मैं उपयोग कर सकता हूं जो मेरी लक्षित तिथि के सबसे करीब है।
क्या आप मुझे एक कार्यक्रम लिख सकते हैं जो मेरी लक्षित तिथि लेता है और मुझे वह तारीख देता है जो मुझे टाइम मशीन में इनपुट करनी चाहिए - दी गई तारीख से पहले या उसके बराबर निकटतम तारीख जिसके पुर्जे एक अभाज्य संख्या में जोड़ते हैं?
(इस चुनौती के लिए, हम प्रोलेप्टिक ग्रेगोरियन कैलेंडर का उपयोग कर रहे हैं - जिसका अर्थ है कि हम वर्तमान ग्रेगोरियन कैलेंडर का उपयोग उस अवधि के लिए भी करते हैं, जब लोग पुराने जूलियन कैलेंडर का उपयोग कर रहे थे।)
इनपुट
- एक तिथि
- आदर्श रूप से, वर्तमान युग (एडी) में कोई भी तारीख; व्यावहारिक रूप से, आपकी भाषा का जो भी उपसमुच्चय है वह स्वाभाविक रूप से संभाल सकता है
- किसी भी एकल मानव-पठनीय स्वरूप में
उत्पादन
- इनपुट तिथि के निकटतम तारीख, जो इनपुट से कम या बराबर है और जिसकी तिथि + माह + वर्ष एक प्रमुख संख्या तक है।
- किसी भी एकल मानव-पठनीय स्वरूप में
⁺: "मानव पठनीय" दिन के रूप में, महीने और साल में सभी अलग-अलग वर्तनी, जो भी आदेश में
परीक्षण के मामलों
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
(सवाल के साथ मदद के लिए @ शागी, @ पेटरटायलर, और @ अरनौल का शुक्रिया।)
Fri Jul 25 02:46:39 CEST 1947
)