A IUPAC, em sua insuportável sabedoria, criou um nome de elemento sistemático para qualquer elemento recém-criado. Este é o nome temporário de um elemento até que eles finalmente se decidam sobre um nome real. Funciona assim: a cada dígito de um número de elemento é atribuído um prefixo com base em seu valor. Os prefixos são concatenados com 'ium' no final. Quando isso for feito e se você obtiver o dobro de i (ii) ou o triplo de n (nnn), substitua-os por um único i e um duplo n. O símbolo para o elemento é a primeira letra de cada prefixo usado concatenado e o resultado em maiúscula. Os prefixos usados estão abaixo.
0 nil 5 pent
1 un 6 hex
2 bi 7 sept
3 tri 8 oct
4 quad 9 enn
Portanto, para esse golfe, seu código precisa gerar o nome do elemento e seu símbolo para um número inteiro positivo. Portanto, se seu código recebeu 137, ele deve ser impresso em stdout ou retornado ambos untriseptiume Uts. Deve ser válido de pelo menos 118 a 558 . Qualquer valor mais alto é válido se não aumentar o comprimento do seu código.
Exemplo de Python mostrando o método:
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
Eric Towers vence com bytes de cádmio!