Tugas Anda adalah mengambil string yang mengandung isotop elemen sebagai input, dikodekan seperti contoh berikut dengan nomor atom diikuti oleh spasi dan simbol kimia IUPAC untuk elemen:
162 Dy
dan mengembalikan jumlah neutron dalam atom isotop itu.
Dalam contoh di atas, dysprosium-162 memiliki 96 neutron (162 total nukleon, minus 66 proton karena itu dysprosium), jadi hasilnya seharusnya 96
.
Anda dapat mengasumsikan bahwa elemen yang diberikan akan menjadi salah satu dari 114 elemen yang saat ini diberikan nama permanen oleh IUPAC (termasuk flerovium dan livermorium) dan bukan nama generik seperti Uus
untuk "ununseptium". Anda juga dapat mengasumsikan bahwa jumlah atom isotop tidak akan melebihi 1000, atau kurang dari jumlah proton dalam elemen.
Anda tidak boleh menggunakan built-in untuk mengambil data tentang jumlah elemen proton atau neutron, atau menggunakan fungsi apa pun dalam kode Anda yang mengevaluasi sendiri string atau nomor token sebagai kode.
Program untuk menggunakan token paling sedikit untuk melakukan ini dalam bahasa apa pun menang. Namun, untuk tujuan tantangan ini, setiap karakter dalam string, atau nama variabel yang dikonversi menjadi string, dihitung sebagai token.
Daftar elemen dan nomor atomnya untuk referensi:
65
satu token atau 2 token?
f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]