A030103 Base 4 reversal of n (written in base 10).
0, 1, 2, 3, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 1, 17, 33, 49, 5, 21, 37, 53, 9, 25, 41, 57, 13, 29, 45, 61, 2, 18, 34, 50, 6, 22, 38, 54, 10, 26, 42, 58, 14, 30, 46, 62, 3, 19, 35, 51, 7, 23, 39, 55, 11, 27, 43, 59, 15, 31, 47, 63, 1, 65, 129, 193, 17, 81, 145, 209, 33, 97, 161
Offset: 0
Links
- Reinhard Zumkeller, Table of n, a(n) for n = 0..10000
Programs
-
Haskell
import Data.List (unfoldr) a030103 n = foldl (\v d -> 4*v + d) 0 $ unfoldr dig n where dig x = if x == 0 then Nothing else Just $ swap $ divMod x 4 -- Reinhard Zumkeller, Oct 10 2011
-
Mathematica
IntegerReverse[Range[0, 100], 4] (* Paolo Xausa, Aug 07 2024 *)
-
PARI
a(n,b=4)=subst(Polrev(base(n,b)),x,b) /* where */ base(n,b)={my(a=[n%b]);while(0
M. F. Hasler, Nov 04 2011 (MIT/GNU Scheme) (define (A030103 n) (if (zero? n) n (let ((uplim (+ (A000523 n) (- 1 (modulo (A000523 n) 2))))) (add (lambda (i) (* (bit_i n (+ i (expt -1 i))) (expt 2 (- uplim i)))) 0 uplim)))) (define (bit_i n i) (modulo (floor->exact (/ n (expt 2 i))) 2)) ;; The functional add implements sum_{i=lowlim..uplim} intfun(i): (define (add intfun lowlim uplim) (let sumloop ((i lowlim) (res 0)) (cond ((> i uplim) res) (else (sumloop (1+ i) (+ res (intfun i))))))) ;; Antti Karttunen, Oct 30 2013