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
카드뮴 바이트로 에릭 타워가 승리합니다!