ওল্ফ্রামল্যাঙ্গুয়েজ (ম্যাথমেটিকা) 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.
] appear হিসাবে উপস্থিত হবে `
#[[1]] & /@
আমাদের উদ্বেগের সাথে প্রতিটি তারিখের তারিখের অংশটি সরিয়ে ফেলবে। উদাহরণস্বরূপ, DateObject[List[1,3,7],"Day","Gregorian",-5.]
সংক্ষিপ্ত তারিখটি প্রদান করে {1,3,7}
,।
t/@p[#3,2]}
অথবা ToString/@Padleft[#3,2]
প্যাড তৃতীয় উপাদান, যথা, 7 হিসাবে "মাসের 7th প্রতিদিন" স্থায়ী "07"
। মার্চ মাসের একক অঙ্কের প্রতীকের জন্য অনুরূপ প্যাডিং সরবরাহ করা হয়, যথা, 3
ফেরত দেওয়া হয় "03"
।
p[#, If[Length@# < 5, 4, 5]]
4 বা 5 সংখ্যার স্ট্রিংয়ের দৈর্ঘ্যে পৌঁছাতে শূন্যের সাথে বছরের প্যাডগুলি। এই ক্ষেত্রে, জানুয়ারী, যাকে 1
`" 00001 "হিসাবে ফিরিয়ে দেওয়া হয়।
"" <>...
স্ট্রিংগুলিতে যোগ দেয়। এই ক্ষেত্রে, এটি ফিরে আসে "000010307"
।
Cases[...x_ /; PalindromeQ@x && PrimeQ@ToExpression@x]
সেই কেসগুলি 1920 সালের তারিখগুলির মধ্যে ফিরিয়ে দেয় যা প্যালিনড্রোম এবং প্রাইম prime
02-29
কেবলমাত্র 400 বছর ধরে বিভাজ্য বা 4 দ্বারা বিভাজ্য এবং 100 দ্বারা বিভাজ্য নয়) for