IUPAC nella sua insostenibile saggezza ha creato un nome di elemento sistematico per qualsiasi elemento appena creato. Questo è il nome temporaneo di un elemento fino a quando non decidono finalmente un vero nome. Funziona così: a ogni cifra di un numero di elemento viene assegnato un prefisso in base al suo valore. I prefissi sono concatenati con 'ium' alla fine. Quando questo è fatto e se ottieni doppie i (ii) o triple n (nnn), sostituiscile con singole i e doppie n. Il simbolo per l'elemento è la prima lettera di ogni prefisso usato concatenato e il risultato maiuscolo. I prefissi utilizzati sono di seguito.
0 nil 5 pent
1 un 6 hex
2 bi 7 sept
3 tri 8 oct
4 quad 9 enn
Quindi per questo golf, il tuo codice deve generare sia il nome dell'elemento che il suo simbolo per un dato intero positivo. Quindi, se il tuo codice è stato dato 137, dovrebbe stampare su stdout o restituire entrambi untriseptium
e Uts
. Dovrebbe essere valido da almeno 118 a 558 . Qualsiasi valore superiore è valido se non aumenta la lunghezza del codice.
Esempio di Python che mostra il metodo:
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 vince con byte di cadmio!