IUPAC w swojej nieznośnej mądrości stworzyli systematyczną nazwę elementu dla każdego nowo utworzonego elementu. Jest to tymczasowa nazwa elementu, dopóki w końcu nie zdecydują się na prawdziwą nazwę. Działa to tak: każda cyfra numeru elementu ma przypisany prefiks na podstawie jego wartości. Prefiksy są łączone z „ium” na końcu. Kiedy to zrobisz i jeśli otrzymasz podwójne i's (ii) lub potrójne n's (nnn), zamień je na pojedyncze i's i podwójne n's. Symbolem elementu jest pierwsza litera każdego użytego prefiksu połączonego i skapitalizowanego wyniku. Użyte prefiksy znajdują się poniżej.
0 nil 5 pent
1 un 6 hex
2 bi 7 sept
3 tri 8 oct
4 quad 9 enn
Więc dla tego golfa twój kod musi wygenerować zarówno nazwę elementu, jak i jego symbol dla danej dodatniej liczby całkowitej. Więc jeśli twój kod otrzymał 137, powinien wypisać na standardowe wyjście lub zwrócić oba untriseptium
i Uts
. Powinien być ważny od co najmniej 118 do 558 . Każda wyższa jest poprawna, jeśli nie zwiększa długości kodu.
Przykład Pythona przedstawiający metodę:
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 wygrywa bajtami kadmu!