(Translated by https://www.hiragana.jp/)
A030103 - OEIS
login
A030103
Base 4 reversal of n (written in base 10).
11
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,3
LINKS
MATHEMATICA
IntegerReverse[Range[0, 100], 4] (* Paolo Xausa, Aug 07 2024 *)
PROG
(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
(PARI) a(n, b=4)=subst(Polrev(base(n, b)), x, b) /* where */
base(n, b)={my(a=[n%b]); while(0<n\=b, a=concat(n%b, a)); a} \\ 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
CROSSREFS
KEYWORD
nonn,base,look,easy
STATUS
approved