Il tuo compito è prendere una stringa contenente un isotopo di un elemento come input, codificato come nell'esempio seguente con il numero atomico seguito da uno spazio e dal simbolo chimico IUPAC per l'elemento:
162 Dy
e restituisce il numero di neutroni in un atomo di quell'isotopo.
Nell'esempio sopra, il disprosio-162 ha 96 neutroni (162 nucleoni totali, meno 66 protoni perché è disprosio), quindi l'output dovrebbe essere 96
.
Si può presumere che l'elemento indicato sarà uno dei 114 elementi attualmente indicati dall'IUPAC (compresi flerovium e livermorium) e non un nome generico come Uus
"ununseptium". Puoi anche supporre che il numero atomico dell'isotopo non superi 1000 o sia inferiore al numero di protoni nell'elemento.
Non è possibile utilizzare gli incorporati per recuperare dati sul numero di elementi protoni o neutroni o utilizzare qualsiasi funzione all'interno del proprio codice che valuti una stringa o un token numerico come codice a sé stante.
Vince il programma che utilizza il minor numero di token per farlo in qualsiasi lingua. Tuttavia, ai fini di questa sfida, ogni personaggio in una stringa, o un nome di variabile convertito in una stringa, conta come token.
Elenco di elementi e il loro numero atomico per riferimento:
65
un singolo token o 2 token?
f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]