IUPAC своєю непереборною мудрістю створив систематичну назву елемента для будь-якого новоствореного елемента. Це тимчасова назва елемента, поки вони нарешті не складуть свою думку про власне ім’я. Це працює так: кожній цифрі номера елемента присвоюється префікс виходячи з його значення. Префікси з'єднуються з 'ium' в кінці. Коли це зроблено і якщо ви отримаєте подвійні i (ii) або потрійні n (nnn), замініть їх на одиничні i і подвійні n. Символ для елемента є першою літерою кожного використаного префікса, об'єднаного і з великої літери. Нижче використовуються префікси.
0 nil 5 pent
1 un 6 hex
2 bi 7 sept
3 tri 8 oct
4 quad 9 enn
Отже, для цього гольфу ваш код повинен генерувати як ім’я елемента, так і його символ для заданого натурального числа. Отже, якщо вашому коду було надано 137, він повинен надрукувати для stdout або повернути обидва untriseptium
і Uts
. Він повинен бути дійсним щонайменше від 118 до 558 . Будь-яка вища версія дійсна, якщо вона не збільшує довжину вашого коду.
Приклад Python, що показує метод:
def elename(n):
'''Return name and symbol of new element for given element number.'''
prefixes=['nil','un','bi','tri','quad','pent','hex','sept','oct','enn']
nmeFixes, symFixes = [], []
while n: # each digit of element number is assigned a prefix
n, i = divmod(n, 10)
pf = prefixes[i]
symFixes.append(pf[0]) # symbol uses only first letter of prefix
nmeFixes.append(pf)
# loop assembled prefixes in reverse order
nmeFixes.reverse()
symFixes.reverse()
nmeFixes.append('ium') # suffix
name = ''.join(nmeFixes)
symb = ''.join(symFixes).capitalize()
# apply rule about too many n's or i's
name = name.replace('nnn','nn') # can happen with -90-
name = name.replace('ii','i') # -2ium or -3ium
return name, symb
Ерік Тауерс виграє кадмиєві байти!