(fn[n](nth(filter #(clojure.string/includes?(str(* % %))(str %))(range))n))
इसे ऑनलाइन आज़माएं! (दुर्भाग्य से, टीआईओ क्लूजुर के मानक स्ट्रिंग लाइब्रेरी का समर्थन नहीं करता है)
अगर क्लोजर में सिंटैक्स आयात करना कम था, या includes?
कोर लाइब्रेरी में एक विधि थी , तो यह वास्तव में कुछ प्रतिस्पर्धी हो सकता है। clojure.string/includes?
अकेला यहाँ कुछ उत्तरों से अधिक लंबा है, हालांकि: /
(defn nth-sq-subs [n]
(-> ; Filter from an infinite range of numbers the ones where the square of
; the number contains the number itself
(filter #(clojure.string/includes? (str (* % %)) (str %))
(range))
; Then grab the "nth" result. Inc(rementing) n so 0 is skipped, since apparently
; that isn't in the sequence
(nth (inc n))))
चूंकि TIO लिंक टूट गया है, इसलिए यहां एक परीक्षण चलाया गया है। बाईं ओर संख्या सूचकांक ( n
) है, और परिणाम ( N
) दाईं ओर है:
(mapv #(vector % (nth-sq-subs %)) (range 100))
=>
[[0 1]
[1 5]
[2 6]
[3 10]
[4 25]
[5 50]
[6 60]
[7 76]
[8 100]
[9 250]
[10 376]
[11 500]
[12 600]
[13 625]
[14 760]
[15 1000]
[16 2500]
[17 3760]
[18 3792]
[19 5000]
[20 6000]
[21 6250]
[22 7600]
[23 9376]
[24 10000]
[25 14651]
[26 25000]
[27 37600]
[28 50000]
[29 60000]
[30 62500]
[31 76000]
[32 90625]
[33 93760]
[34 100000]
[35 109376]
[36 250000]
[37 376000]
[38 495475]
[39 500000]
[40 505025]
[41 600000]
[42 625000]
[43 760000]
[44 890625]
[45 906250]
[46 937600]
[47 971582]
[48 1000000]
[49 1093760]
[50 1713526]
[51 2500000]
[52 2890625]
[53 3760000]
[54 4115964]
[55 5000000]
[56 5050250]
[57 5133355]
[58 6000000]
[59 6250000]
[60 6933808]
[61 7109376]
[62 7600000]
[63 8906250]
[64 9062500]
[65 9376000]
[66 10000000]
[67 10050125]
[68 10937600]
[69 12890625]
[70 25000000]
[71 28906250]
[72 37600000]
[73 48588526]
[74 50000000]
[75 50050025]
[76 60000000]
[77 62500000]
[78 66952741]
[79 71093760]
[80 76000000]
[81 87109376]
[82 88027284]
[83 88819024]
[84 89062500]
[85 90625000]
[86 93760000]
[87 100000000]
[88 105124922]
[89 109376000]
[90 128906250]
[91 146509717]
[92 177656344]
[93 200500625]
[94 212890625]
[95 250000000]
[96 250050005]
[97 289062500]
[98 370156212]
[99 376000000]]
यह किसी भी मूल्य का समर्थन करने में सक्षम होना चाहिए n
; आप इसे समाप्त करने के लिए प्रतीक्षा करने के लिए तैयार हैं (क्रम में 50 वें से 100 वें पूर्णांकों को खोजने में 15 मिनट लगते हैं)। क्लोजर मनमाने ढंग से बड़े पूर्णांक अंकगणित का समर्थन करता है, इसलिए एक बार जब संख्याएं विशाल होने लगती हैं, तो यह BigInt
एस का उपयोग करना शुरू कर देता है ।