आपका कार्य इनपुट के रूप में एक तत्व के आइसोटोप युक्त एक स्ट्रिंग को लेना है, परमाणु संख्या के साथ निम्नलिखित उदाहरण की तरह एन्कोड किया गया है और तत्व के लिए IUPAC रासायनिक प्रतीक है:
162 Dy
और उस समस्थानिक के एक परमाणु में न्यूट्रॉन की संख्या लौटाते हैं ।
उपरोक्त उदाहरण में, डिस्प्रोसियम -156 में 96 न्यूट्रॉन (162 कुल नाभिक, माइनस 66 प्रोटॉन हैं क्योंकि यह डिस्प्रोसियम है), इसलिए आउटपुट होना चाहिए 96
।
आप मान सकते हैं कि दिया गया तत्व वर्तमान में IUPAC (फ़्लेरोवियम और लिवरमोरियम सहित) द्वारा दिए गए 114 तत्वों में से एक होगा और न कि जेनेरिक नाम जैसे Uus
"अनयून्सेप्टियम"। आप यह भी मान सकते हैं कि आइसोटोप की परमाणु संख्या 1000 से अधिक नहीं होगी, या तत्व में प्रोटॉन की संख्या से कम होगी।
आप प्रोटॉन या न्यूट्रॉन तत्वों की संख्या के बारे में डेटा प्राप्त करने के लिए बिल्ट-इन का उपयोग नहीं कर सकते हैं, या अपने कोड के भीतर किसी फ़ंक्शन का उपयोग कर सकते हैं जो किसी स्ट्रिंग या संख्या टोकन का मूल्यांकन कोड के रूप में करता है।
किसी भी भाषा की जीत में ऐसा करने के लिए सबसे कम टोकन का उपयोग करने का कार्यक्रम। हालाँकि, इस चुनौती के उद्देश्य के लिए, स्ट्रिंग में प्रत्येक वर्ण, या एक स्ट्रिंग में परिवर्तित चर नाम, टोकन के रूप में गिना जाता है।
संदर्भ के लिए तत्वों और उनकी परमाणु संख्या की सूची:
65
एक एकल टोकन या 2 टोकन है?
f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]