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
Ерік Тауерс виграє кадмиєві байти!