वोल्फ्रामलंगेज (गणितज्ञ) 187 बाइट्स
आकार में कुछ कमी देखने को मिल सकती है। अनुसरण करने के लिए स्पष्टीकरण ...
t=ToString;p=PadLeft;d=DateObject;Cases[""<>{t/@p[#,If[Length@#<5,4, 5]],t/@ p[#2,2],t/@p[#3,2]}&@@@(IntegerDigits/@#[[1]]&/@DayRange[d@#,d@#2]),x_/;PalindromeQ@x&&PrimeQ@ToExpression@x]&
परीक्षण के मामलों
t = ToString; p = PadLeft; d = DateObject;
Cases["" <> {t /@ p[#, If[Length@# < 5, 4, 5]], t /@ p[#2, 2],
t /@ p[#3, 2]} & @@@ (IntegerDigits /@ #[[1]] & /@ DayRange[d@#, d@#2]),
x_ /; PalindromeQ@x && PrimeQ@ToExpression@x] &[{10011, 10, 1}, {10017, 1, 1}]
(* {"100111001", "100131001", "100161001"} *)
कोड की व्याख्या
DayRange[d@#,d@#2]के बीच तारीखों के सभी देता है {10011, 10, 1}और {10017, 1, 1}। इस मामले में, यह लगभग 5 साल, 4 महीने की तारीखें (ठीक 1920 तारीखें) देता है। लीप वर्ष को ध्यान में रखा जाता है।
वुल्फ्राम-मानक स्वरूपण में तिथियां वापस आ जाती हैं। उदाहरण के लिए, पहली तारीख के रूप में दिखाई देगा DateObject[List[1,1,1],"Day","Gregorian",-5.] `
#[[1]] & /@प्रत्येक तारीख में तारीख का हिस्सा निकाल देंगे, जो हमें चिंतित करता है। उदाहरण में, DateObject[List[1,3,7],"Day","Gregorian",-5.], संक्षिप्त तारीख रिटर्न {1,3,7}।
t/@p[#3,2]}या ToString/@Padleft[#3,2]तीसरे तत्व को पैड करता है, अर्थात्, "महीने के 7 वें दिन" के रूप में 7 खड़ा है "07"। इसी गद्दी मार्च के महीने के लिए एकल अंक प्रतीक के लिए प्रदान की जाती है, अर्थात्, 3के रूप में दिया जाता है "03"।
p[#, If[Length@# < 5, 4, 5]]4 या 5 अंक स्ट्रिंग की लंबाई तक पहुंचने के लिए शून्य के साथ वर्ष पैड। इस मामले में, जनवरी, अर्थात् 1, "00001" के रूप में लौटाया जाता है।
"" <>...तार जुड़ता है। इस मामले में, यह वापस आ जाता है "000010307"।
Cases[...x_ /; PalindromeQ@x && PrimeQ@ToExpression@x] 1920 की तारीखों के बीच उन मामलों को लौटाता है, जो पैलिन्ड्रोम और प्रिम्स हैं।
02-29केवल उन वर्षों के लिए मौजूद है जो 400 से विभाज्य हैं (4 से विभाज्य हैं और 100 से विभाज्य नहीं हैं)।