# calculates Euler e in different bases # prints Maya20, Babylon60 with own characters, other in numbers # aprroximation for m!,increasing m from on an # Stirling: ln(n!) = 0.5*ln(2Ο€n) + n(ln(n)-1) # initial value of 4 until m! > 10^(n+1) # ln(10) = 2.302585092994046, ln(2pi)=ln(6.283185307179586) # Eulerin luvun e desimaalit ( n kpl) # Juhani Kaukoranta 16.2.2022 function e_calcul(n,b) # n digits, b base nro="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" cunei=["π’‘²", "𒁹", "π’ˆ«", "π’ˆ", "𒐉", "π’Š", "𒐋", "π’‘‚", "𒐍", "𒑆", "π’Œ‹", "π’Œ‹π’Ή", "π’Œ‹π’ˆ«", "π’Œ‹π’ˆ", "π’Œ‹π’‰", "π’Œ‹π’Š", "π’Œ‹π’‹", "π’Œ‹π’‘‚", "π’Œ‹π’", "π’Œ‹π’‘†", "π’Œ‹π’Œ‹", "π’Œ‹π’Œ‹π’Ή", "π’Œ‹π’Œ‹π’ˆ«", "π’Œ‹π’Œ‹π’ˆ", "π’Œ‹π’Œ‹π’‰", "π’Œ‹π’Œ‹π’Š", "π’Œ‹π’Œ‹π’‹", "π’Œ‹π’Œ‹π’‘‚", "π’Œ‹π’Œ‹π’", "π’Œ‹π’Œ‹π’‘†", "π’Œ", "π’Œπ’Ή", "π’Œπ’ˆ«", "π’Œπ’ˆ", "π’Œπ’‰", "π’Œπ’Š", "π’Œπ’‹", "π’Œπ’‘‚", "π’Œπ’", "π’Œπ’‘†", "𒐏", "𒐏𒁹", "π’π’ˆ«", "π’π’ˆ", "𒐏𒐉", "π’π’Š", "𒐏𒐋", "𒐏𒑂", "𒐏𒐍", "𒐏𒑆", "𒐐", "𒐐𒁹", "π’π’ˆ«", "π’π’ˆ", "𒐐𒐉", "π’π’Š", "𒐐𒐋", "𒐐𒑂", "𒐐𒐍", "𒐐𒑆"] print("base ",b," : ",) m = 5 # laskentatermien mÀÀrΓ€ test = (n+1)*2.302585092994046 while m*(log(m)-1.0) + 0.5*log(6.283185307179586*m) <= test m += 1 end if b == 2 print("10.",) # eka e:n binÀÀrinumero end if b == 20 println("Maya :") println(Char(119522),"."," (kokonaisosa)") end if b == 60 print("Babylon60: ",cunei[3]," . ") # eka numeron nuolepÀÀmerkki end if (!(b==2)&&!(b==20)&&!(b==60)) print("2.",) # eka e:n numero end coef = fill(1,m) # array coef contains only 1 for i in 1:n carry = 0 for j in reverse(2:m) temp = coef[j]*b + carry # in base:bin 2,oct 8,dec 10,hex 16 carry = div(temp,j) coef[j] = temp - carry*j end # of digit generation if b==2 print(carry,) end if b==20 # MAYA numeral symbols classic style topdown println(Char(119520+carry)) end if b == 60 # Babylon60-nuolenpÀÀmerkit print(cunei[carry+1]," ",) # prints e digits, on by one end if !((b==2)||(b==20)||(b==60)) print(nro[carry+1],) end end println() end