IUPAC 은 참을 수없는 지혜로 새로 만든 요소에 대해 체계적인 요소 이름 을 만들었습니다. 이것은 실제로 실제 이름에 대해 마음을 정할 때까지 요소의 임시 이름입니다. 요소 번호의 각 숫자에는 그 값에 따라 접두사가 할당됩니다. 접두사는 끝에 'ium'으로 연결됩니다. 이 작업을 수행하고 이중 i (ii) 또는 삼중 n (nnn)을 얻으면 단일 i 및 이중 n으로 대체하십시오. 요소의 기호는 연결되고 결과가 대문자로 사용 된 각 접두사의 첫 글자입니다. 사용 된 접두사는 다음과 같습니다.
0 nil 5 pent
1 un 6 hex
2 bi 7 sept
3 tri 8 oct
4 quad 9 enn
따라서이 골프의 경우 코드는 주어진 양의 정수에 대해 요소 이름과 기호를 모두 생성해야합니다. 코드가 137 주어진다면, 그것은 표준 출력 또는 반환 모두에 인쇄해야 untriseptium하고 Uts. 적어도 118에서 558 사이 여야합니다 . 코드 길이를 늘리지 않으면 더 높은 값이 유효합니다.
방법을 보여주는 파이썬 예제 :
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
카드뮴 바이트로 에릭 타워가 승리합니다!