Electron Configuration In atomic physics and quantum chemistry, the electron configuration is the distribution of electrons of an atom in atomic orbitals. For example, the electron configuration of the neon atom is 1s2 2s2 2p6. (From Wikipedia)


Challenge

Your challenge is to take a number representing the atomic number of an element and output the electron configuration of that element as defined by the Aufbau principle.

Iron (26) has the electron configuration 1s2 2s2 2p6 3s2 3p6 3d6 4s2. However, superscripts are unnecessary; the output for 26 should be along the lines of 1s2 2s2 2p6 3s2 3p6 3d6 4s2.

Specification


You do not have to handle any inputs outside of the range 1 &lt;= n &lt;= 118. 
Your output should look something like the test cases, but you may use any non-digit character/characters (aside from s, p, d, and f) to delimit the different orbitals.
You must return/print a string containing the orbital names/values/delmiters; you cannot simply return/print an array.
You do not need to handle any exceptions to the Aufbau principle; where there are exceptions, printing the "incorrect" configuration is fine.


Examples:

Input -&gt; Valid output            -&gt; Invalid output
16    -&gt; 1s2 2s2 2p6 3s2 3p4     -&gt; 1s22s22p63s23p4
16    -&gt; 1s2, 2s2, 2p6, 3s2, 3p4 -&gt; [[1, 2], [2, 2], [2, 6], [3, 2], [3, 4]]
17    -&gt; 1s2+2s2+2p6+3s2+3p5     -&gt; 1s2s2s2s2p6p3s2s3p5


Here is a list of all the electronic orbitals. The maximum values they can contain are below the name:

name: 1s 2s 2p 3s 3p 3d 4s 4p 4d 5s 5p 4f 5d 6s 6p 5f 6d 7s 7p
max:  2  2  6  2  6  10 2  6  10 2  6  14 10 2  6  14 10 2  6


Test Cases

Input -&gt; Output
1     -&gt; 1s1
2     -&gt; 1s2
16    -&gt; 1s2 2s2 2p6 3s2 3p4
50    -&gt; 1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s2 5p2
115   -&gt; 1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s2 5p6 4f14 5d10 6s2 6p6 5f14 6d10 7s2 7p3


Here is a complete list and a reference implementation of sorts (Try it online!)

Winning Condition

As this is code-golf, the shortest code wins!
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, yö, 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.