Electron Configuration

Imperative Tampio, 930 bytes

Yöllä on ilot.Olkoon oma ilo uusi yö, jonka iloja ovat ilo"1s",ilo"2s",ilo"2p",ilo"3s",ilo"3p",ilo"3d",ilo"4s",ilo"4p",ilo"4d",ilo"5s",ilo"5p",ilo"4f",ilo"5d",ilo"6s",ilo"6p",ilo"5f",ilo"6d",ilo"7s"ja ilo"7p".Olkoon iso yö uusi yö, jonka iloja ovat 2,2,6,2,6,10,2,6,10,2,6,14,10,2,6,14,10,2 ja 6.Kun iso luku juo ison ilon,iso ilo näyttää oman yön,missä oma yö on oman ilon ensimmäinen ilo ja ujo ilo on ison yön ensimmäinen ilo,jos iso luku on suurempi kuin ujo ilo,niin iso ilo näyttää ujon ilon,iso ilo näyttää ilon" ",oman ilon iloiksi asetetaan oman ilon ilot toisesta alkaen,ison yön iloiksi asetetaan ison yön ilot toisesta alkaen ja iso luku vähennettynä ujolla ilolla juo ison ilon ja,jos iso luku on pienempi tai yhtä suuri kuin ujo ilo,niin iso ilo näyttää ison luvun.Olkoon oma muuttuja uusi muuttuja.Kun iso sivu avautuu,omaan muuttujaan luetaan luku ja oman muuttujan arvo juo ison sivun.

Yöllä on ilot.Olkoon oma ilo uusi yö, jonka iloja ovat ilo"1s",ilo"2s",ilo"2p",ilo"3s",ilo"3p",ilo"3d",ilo"4s",ilo"4p",ilo"4d",ilo"5s",ilo"5p",ilo"4f",ilo"5d",ilo"6s",ilo"6p",ilo"5f",ilo"6d",ilo"7s"ja ilo"7p".Olkoon iso yö uusi yö, jonka iloja ovat 2,2,6,2,6,10,2,6,10,2,6,14,10,2,6,14,10,2 ja 6.Kun iso luku juo ison ilon,iso ilo näyttää oman yön,missä oma yö on oman ilon ensimmäinen ilo ja ujo ilo on ison yön ensimmäinen ilo,jos iso luku on suurempi kuin ujo ilo,niin iso ilo näyttää ujon ilon,iso ilo näyttää ilon" ",oman ilon iloiksi asetetaan oman ilon ilot toisesta alkaen,ison yön iloiksi asetetaan ison yön ilot toisesta alkaen ja iso luku vähennettynä ujolla ilolla juo ison ilon ja,jos iso luku on pienempi tai yhtä suuri kuin ujo ilo,niin iso ilo näyttää ison luvun.Olkoon oma muuttuja uusi muuttuja.Kun iso sivu avautuu,omaan muuttujaan luetaan luku ja oman muuttujan arvo juo ison sivun.

Online version

It is a very straightforward implementation. In the golfed version I simply replaced the words with short words like ilo, , iso, oma, etc.

Ungolfed:

Listalla on alkiot.

Olkoon lyhyt orbitaalilista uusi lista, jonka alkioita ovat orbitaali "1s", orbitaali "2s", orbitaali "2p", orbitaali "3s", orbitaali "3p", orbitaali "3d", orbitaali "4s", orbitaali "4p", orbitaali "4d", orbitaali "5s", orbitaali "5p", orbitaali "4f", orbitaali "5d", orbitaali "6s", orbitaali "6p", orbitaali "5f", orbitaali "6d", orbitaali "7s" ja orbitaali "7p".

Olkoon lyhyt maksimilista uusi lista, jonka alkioita ovat 2, 2, 6, 2, 6, 10, 2, 6, 10, 2, 6, 14, 10, 2, 6, 14, 10, 2 ja 6.

Kun jaetaan orbitaaleille pienehkö elektronimäärä nykyisellä sivulla,

  • nykyinen sivu näyttää nykyisen orbitaalin, missä nykyinen orbitaali on lyhyen orbitaalilistan ensimmäinen alkio ja nykyinen maksimi on lyhyen maksimilistan ensimmäinen alkio,
  • jos pienehkö elektronimäärä on suurempi kuin nykyinen maksimi, niin

    • nykyinen sivu näyttää nykyisen maksimin,
    • nykyinen sivu näyttää välin " ",
    • lyhyen orbitaalilistan alkioiksi asetetaan lyhyen orbitaalilistan alkiot toisesta alkaen,
    • lyhyen maksimilistan alkioiksi asetetaan lyhyen maksimilistan alkiot toisesta alkaen
    • ja jaetaan orbitaaleille pienehkö elektronimäärä vähennettynä nykyisellä maksimilla nykyisellä sivulla,
  • ja, jos pienehkö elektronimäärä on pienempi tai yhtä suuri kuin nykyinen maksimi,
    • niin nykyinen sivu näyttää pienehkön elektronimäärän.

Olkoon mukava muuttuja uusi muuttuja.

Kun nykyinen sivu avautuu,

  • mukavaan muuttujaan luetaan luku
  • ja jaetaan orbitaaleille mukavan muuttujan arvo nykyisellä sivulla.

Online version

Translation:

A list has items.

Let the short orbital list be a new list, its items are the orbital "1s", the orbital "2s", the orbital "2p", the orbital "3s", the orbital "3p", the orbital "3d", the orbital "4s", the orbital "4p", the orbital "4d", the orbital "5s", the orbital "5p", the orbital "4f", the orbital "5d", the orbital "6s", the orbital "6p", the orbital "5f", the orbital "6d", the orbital "7s" and the orbital "7p".

Let the short maximum list be a new list, its items are 2, 2, 6, 2, 6, 10, 2, 6, 10, 2, 6, 14, 10, 2, 6, 14, 10, 2 and 6.

When a small number of electrons is divided to the orbitals at the current page,

  • the current page shows the current orbital, where the current orbital is the first item in the short orbital list and the current maximum is the first element in the short maximum list,
  • if the small number of electrons is greater than the current maximum,
    • the current page shows the current maximum,
    • the current page shows the space " ",
    • the elements of the short orbital list are set to be the elements of the short orbital list beginning from the second,
    • the elements of the short maximum list are set to be the elements of the short maximum list beginning from the second
    • and the small number of electrons subtracted by one is divided to the orbitals at the current page,
  • and, if the small number of electrons is less than or equal to the current maximum,
    • the current page shows the small number or electrons.

Let the nice variable be a new variable.

When the current page opens,

  • a number is read to the nice variable
  • and the value of the nice variable is divided to the orbitals at the current page.

The translation is approximate, I had to change the word order to make the English more natural.


Python 2, 129 128 bytes

-1 byte thanks to notjagan

n=input()
d='spdf'.find
s='sspspdspdspfdspfdsp'
i=0
while n>0:c=s[i];t=d(c)*4+2;print`s[:i].count(c)-~d(c)`+c,min(t,n);n-=t;i+=1

Try it online!


Charcoal, 72 bytes

Nθ≔”{⊞″I⌀⁼C$Pπ3”α≔⁰ιW›θ⁰«§”o⧴∨c▷⎇_'l|”ι§αι≔⁺×⁴⌕spdf§αι²εI⌊⟦εθ⟧→≔⊕ιι≔⁻θεθ

Try it online!

Here you have the verbose version.