Ваше завдання - взяти рядок, що містить ізотоп елемента, кодований як наступний приклад з атомним номером з подальшим пробілом та хімічним символом IUPAC для елемента:
162 Dy
і повернути кількість нейтронів в атомі цього ізотопу.
У наведеному вище прикладі диспрозіум-162 має 96 нейтронів (162 загальних нуклонів, мінус 66 протонів, оскільки це диспрозіум), тому вихід повинен бути 96.
Ви можете припустити, що даний елемент буде одним із 114 елементів, на даний час IUPAC має постійні імена (включаючи флеровіум та печінкорію), а не загальну назву, наприклад, Uusдля "ununseptium". Ви також можете припустити, що атомне число ізотопу не буде перевищувати 1000 або бути меншим за кількість протонів у елементі.
Ви не можете використовувати вбудовані модулі для отримання даних про кількість протонів чи нейтронів, або використовувати будь-яку функцію у вашому коді, яка самостійно оцінює маркер рядка чи числа як код.
Виграє програма, яка використовує найменше лексем для будь-якої мови. Однак для цього завдання кожен символ у рядку або ім'я змінної, перетвореної у рядок, вважається лексемою.
Список елементів та їх атомний номер для довідки:
65є один маркер або 2 жетони?
f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]