fork download
  1. f_origin = ->n{(10*1.1007**n).round + n/10 - n/17 - n/20 - n/22 + n/23}
  2. f = ->n{10**(n/24) * f_origin[n%24]}
  3. g = ->n{(24*Math.log10(n)).round - 24}
  4.  
  5. [0, *23..48, 2399, 2400, 12345].each do |i|
  6. v = f[i]
  7. puts "f[%d] = %d\ng[f[%d]] = %d\n\n" % [i, v, i, g[v]]
  8. end
  9.  
Success #stdin #stdout 0.01s 6440KB
stdin
Standard input is empty
stdout
f[0] = 10
g[f[0]] = 0

f[23] = 91
g[f[23]] = 23

f[24] = 100
g[f[24]] = 24

f[25] = 110
g[f[25]] = 25

f[26] = 120
g[f[26]] = 26

f[27] = 130
g[f[27]] = 27

f[28] = 150
g[f[28]] = 28

f[29] = 160
g[f[29]] = 29

f[30] = 180
g[f[30]] = 30

f[31] = 200
g[f[31]] = 31

f[32] = 220
g[f[32]] = 32

f[33] = 240
g[f[33]] = 33

f[34] = 270
g[f[34]] = 34

f[35] = 300
g[f[35]] = 35

f[36] = 330
g[f[36]] = 36

f[37] = 360
g[f[37]] = 37

f[38] = 390
g[f[38]] = 38

f[39] = 430
g[f[39]] = 39

f[40] = 470
g[f[40]] = 40

f[41] = 510
g[f[41]] = 41

f[42] = 560
g[f[42]] = 42

f[43] = 620
g[f[43]] = 43

f[44] = 680
g[f[44]] = 44

f[45] = 750
g[f[45]] = 45

f[46] = 820
g[f[46]] = 46

f[47] = 910
g[f[47]] = 47

f[48] = 1000
g[f[48]] = 48

f[2399] = 91000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
g[f[2399]] = 2399

f[2400] = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
g[f[2400]] = 2400

f[12345] = 240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
g[f[12345]] = 12345