Nhiệm vụ của bạn là lấy một chuỗi chứa đồng vị của một nguyên tố làm đầu vào, được mã hóa như ví dụ sau với số nguyên tử theo sau là khoảng trắng và ký hiệu hóa học IUPAC cho phần tử:
162 Dy
và trả về số lượng neutron trong một nguyên tử của đồng vị đó.
Trong ví dụ trên, dysprosium-162 có 96 neutron (tổng số 162 nucleon, trừ 66 proton vì đó là dysprosium), do đó, đầu ra phải là 96
.
Bạn có thể giả định rằng phần tử được cung cấp sẽ là một trong số 114 phần tử hiện được đặt tên vĩnh viễn bởi IUPAC (bao gồm flerovium và hepmorium) và không phải là một tên chung như Uus
"ununseptium". Bạn cũng có thể cho rằng số nguyên tử của đồng vị sẽ không vượt quá 1000, hoặc nhỏ hơn số lượng proton trong nguyên tố.
Bạn không được sử dụng các phần tử tích hợp để truy xuất dữ liệu về số phần tử proton hoặc neutron hoặc sử dụng bất kỳ chức năng nào trong mã của bạn để tự đánh giá một chuỗi hoặc mã thông báo số dưới dạng mã.
Chương trình sử dụng ít mã thông báo nhất để thực hiện điều này bằng bất kỳ ngôn ngữ nào sẽ giành chiến thắng. Tuy nhiên, với mục đích của thử thách này, mỗi ký tự trong chuỗi hoặc tên biến được chuyển đổi thành chuỗi, được tính là mã thông báo.
Danh sách các nguyên tố và số nguyên tử của chúng để tham khảo:
65
một mã thông báo duy nhất hoặc 2 mã thông báo?
f[i_] := {n = ElementData[#[[2]], ToString@"StandardName"] <> ToString[#[[1]]], IsotopeData[n, "NeutronNumber"]} &[i]