reviewed
approved
reviewed
approved
proposed
reviewed
editing
proposed
def a065620(n): return n if n<3 else 2*a065620(n//2) if n%2==0 else -2*a065620((n - 1)//2) + 1
print ([a(n) for n in range(101)] ) # Indranil Ghosh, Jun 07 2017
approved
editing
print [a(n) for n in xrangerange(101)] # Indranil Ghosh, Jun 07 2017
reviewed
approved
proposed
reviewed
editing
proposed
(PARI)
a048724(n) = bitxor(n, 2*n);
a065620(n) = if(n<3, n, if(n%2, -2*a065620((n - 1)/2) + 1, 2*a065620(n/2)));
a065621(n) = bitxor(n, 2*(n - bitand(n, -n)));
a(n) = x=a065620(n); if(n<2, n, if(x<0, a065621(1 + a(-x)), a048724(a(x - 1))));
for(n=0, 100, print1(a(n), ", ")) \\ Indranil Ghosh, Jun 07 2017
(Python)
def a048724(n): return n^(2*n)
def a065620(n): return n if n<3 else 2*a065620(n/2) if n%2==0 else -2*a065620((n - 1)/2) + 1
def a065621(n): return n^(2*(n - (n & -n)))
def a(n):
x=a065620(n)
return n if n<2 else a065621(1 + a(-x)) if x<0 else a048724(a(x - 1))
print [a(n) for n in xrange(101)] # Indranil Ghosh, Jun 07 2017
approved
editing
proposed
approved