2 edited body

## Mathematica, 65

Should be quite fast enough, although I have to admit I peakedpeeked at the other submissions before making this.

f = (n = #;
l = 0;
While[n > 0,
m = Floor[Log2[1 + n]];
l += 10^(m - 1);
n -= 2^m - 1
]; l)&


Usage:

f[1000000000000000000]


Output:

11011110000010110110101100111010011101100100000000000001102


Starts giving MaxExtraPrecision error messages somewhere past 10^228 (for which it calculates the result in .03 seconds on my machine)

After removing the MaxExtraPrecision limit, it will handle numbers up to around 10^8000 in a second.

Input:

Timing[Block[{$MaxExtraPrecision = Infinity}, f[10^8000]];]  Output: {1.060807, Null}  ## Mathematica, 65 Should be quite fast enough, although I have to admit I peaked at the other submissions before making this. f = (n = #; l = 0; While[n > 0, m = Floor[Log2[1 + n]]; l += 10^(m - 1); n -= 2^m - 1 ]; l)&  Usage: f[1000000000000000000]  Output: 11011110000010110110101100111010011101100100000000000001102  Starts giving MaxExtraPrecision error messages somewhere past 10^228 (for which it calculates the result in .03 seconds on my machine) After removing the MaxExtraPrecision limit, it will handle numbers up to around 10^8000 in a second. Input: Timing[Block[{$MaxExtraPrecision = Infinity}, f[10^8000]];]


Output:

{1.060807, Null}


## Mathematica, 65

Should be quite fast enough, although I have to admit I peeked at the other submissions before making this.

f = (n = #;
l = 0;
While[n > 0,
m = Floor[Log2[1 + n]];
l += 10^(m - 1);
n -= 2^m - 1
]; l)&


Usage:

f[1000000000000000000]


Output:

11011110000010110110101100111010011101100100000000000001102


Starts giving MaxExtraPrecision error messages somewhere past 10^228 (for which it calculates the result in .03 seconds on my machine)

After removing the MaxExtraPrecision limit, it will handle numbers up to around 10^8000 in a second.

Input:

Timing[Block[{$MaxExtraPrecision = Infinity}, f[10^8000]];]  Output: {1.060807, Null}  1 ## Mathematica, 65 Should be quite fast enough, although I have to admit I peaked at the other submissions before making this. f = (n = #; l = 0; While[n > 0, m = Floor[Log2[1 + n]]; l += 10^(m - 1); n -= 2^m - 1 ]; l)&  Usage: f[1000000000000000000]  Output: 11011110000010110110101100111010011101100100000000000001102  Starts giving MaxExtraPrecision error messages somewhere past 10^228 (for which it calculates the result in .03 seconds on my machine) After removing the MaxExtraPrecision limit, it will handle numbers up to around 10^8000 in a second. Input: Timing[Block[{$MaxExtraPrecision = Infinity}, f[10^8000]];]


Output:

{1.060807, Null}