IUPAC dalam kebijaksanaannya yang tak tertahankan telah menciptakan nama elemen sistematis untuk setiap elemen yang baru dibuat. Ini adalah nama sementara elemen hingga mereka akhirnya memutuskan tentang nama sebenarnya. Ini berfungsi seperti itu: setiap digit nomor elemen diberi awalan berdasarkan nilainya. Awalan disatukan dengan 'ium' di bagian akhir. Ketika ini selesai dan jika Anda mendapatkan dua kali lipat i (ii) atau triple n (nnn), gantilah dengan i tunggal dan n ganda. Simbol untuk elemen adalah huruf pertama dari setiap awalan yang digunakan digabungkan dan hasilnya dikapitalisasi. Awalan yang digunakan di bawah ini.
0 nil 5 pent
1 un 6 hex
2 bi 7 sept
3 tri 8 oct
4 quad 9 enn
Jadi untuk golf ini, kode Anda perlu menghasilkan nama elemen dan simbolnya untuk bilangan bulat positif yang diberikan. Jadi, jika kode Anda diberikan 137, harus mencetak ke stdout atau mengembalikan keduanya untriseptium
dan Uts
. Itu harus valid dari setidaknya 118 hingga 558 . Yang lebih tinggi valid jika tidak menambah panjang kode Anda.
Contoh Python menunjukkan metode:
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 menang dengan byte kadmium!