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 untriseptium
e 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!