ИЮПАК в своей невыносимой мудрости создал систематическое название элемента для любого вновь созданного элемента. Это временное имя элемента, пока они, наконец, не примут решение о действительном имени. Это работает так: каждой цифре номера элемента присваивается префикс в зависимости от его значения. Префиксы объединяются с '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, он должен вывести на стандартный вывод или вернуть оба 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
Эрик Тауэрс побеждает с кадмиевыми байтами!