>>287 Squeak/Pharo Smalltalk

| fn |

fn := [:N |
| nDig |
nDig := N log truncated.
(1 to: nDig)
inject: (1 to: N by: 2) size * (nDig + 1)
into: [:tot :m | tot - ((10 raisedTo: m) / 2)]
].

#(3 10 9999 123456789 31415926535897) collect: fn

"=> #(2 5 19445 500000000 214355930195731) "