let table = "0123456789abcdefghijklmnopqrstuvwxyz"
let tobigint (str:string) radix =
let mutable bi = bigint(0)
for c in str.ToCharArray() do
bi <- bi * radix + (c|>System.Char.ToLower|>table.IndexOf|>bigint)
bi
let tostring x radix =
let mutable str = ""
let mutable i = x
while i <> bigint(0) do
str <- (table.Chars((i % radix)|>int)).ToString() + str
i <- i / radix
str
[<EntryPoint>]
let main argv =
let args = "16 deadbabe".Split [|' '|]
let bi = tobigint args.[1] (args.[0]|>int|>bigint)
for i in [2..36] do
printfn "%d#%s" i (tostring bi (i|>bigint))
0 // return an integer exit code
bGV0IHRhYmxlID0gIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIKCmxldCB0b2JpZ2ludCAoc3RyOnN0cmluZykgcmFkaXggPQogICAgbGV0IG11dGFibGUgYmkgPSBiaWdpbnQoMCkKICAgIGZvciBjIGluIHN0ci5Ub0NoYXJBcnJheSgpIGRvCiAgICAgICAgYmkgPC0gYmkgKiByYWRpeCArIChjfD5TeXN0ZW0uQ2hhci5Ub0xvd2VyfD50YWJsZS5JbmRleE9mfD5iaWdpbnQpCiAgICBiaQoKbGV0IHRvc3RyaW5nIHggcmFkaXggPSAKICAgIGxldCBtdXRhYmxlIHN0ciA9ICIiCiAgICBsZXQgbXV0YWJsZSBpID0geAogICAgd2hpbGUgaSA8PiBiaWdpbnQoMCkgZG8KICAgICAgICBzdHIgPC0gKHRhYmxlLkNoYXJzKChpICUgcmFkaXgpfD5pbnQpKS5Ub1N0cmluZygpICsgc3RyCiAgICAgICAgaSA8LSBpIC8gcmFkaXgKICAgIHN0cgoKWzxFbnRyeVBvaW50Pl0KbGV0IG1haW4gYXJndiA9IAogICAgbGV0IGFyZ3MgPSAiMTYgZGVhZGJhYmUiLlNwbGl0IFt8JyAnfF0KICAgIGxldCBiaSA9IHRvYmlnaW50IGFyZ3MuWzFdIChhcmdzLlswXXw+aW50fD5iaWdpbnQpCgogICAgZm9yIGkgaW4gWzIuLjM2XSBkbwogICAgICAgIHByaW50Zm4gIiVkIyVzIiBpICh0b3N0cmluZyBiaSAoaXw+YmlnaW50KSkKCiAgICAwIC8vIHJldHVybiBhbiBpbnRlZ2VyIGV4aXQgY29kZQ==