IUPAC onların dayanılmaz bilgeliğinde, yeni yaratılmış herhangi bir eleman için sistematik bir eleman adı yarattı. Bu, bir elemanın nihayet gerçek bir isim hakkında karar verinceye kadar geçici adıdır. Öyle çalışır: Bir eleman numarasının her basamağına, değerine göre bir önek atanır. Önekler sonunda 'ium' ile birleştirilir. Bu yapıldığında ve i 'i (ii) ya da üçlü n' i (nnn) ikiye katlarsanız, bunları i 'i ve i n' i ile değiştirin. Öğenin simgesi, birleştirilmiş ve sonuç büyük harf kullanılan her önek ilk harfidir. Kullanılan önekler aşağıdadır.
0 nil 5 pent
1 un 6 hex
2 bi 7 sept
3 tri 8 oct
4 quad 9 enn
Bu nedenle, bu golf için, kodunuzun verilen bir tamsayı için hem eleman adını hem de sembolünü oluşturması gerekir. Kodunuzu 137 verildiği takdirde Yani, stdout veya iade hem yazdırmalısınız untriseptium
ve Uts
. En az 118 ila 558 arasında geçerli olmalıdır . Kodunuzun uzunluğunu arttırmazsa daha yüksek olanları geçerlidir.
Yöntemi gösteren Python örneği:
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 kadmiyum bayt ile kazandı!