OFFSET
0,5
COMMENTS
Somehow complementary to A007949, the 3-adic valuation of n.
The base 2 analog of this sequence essentially coincides with the 2-adic valuation A007814 (up to a shift in the index).
One gets back the same sequence by concatenation of the pattern (0,1,1) successively multiplied by a(n)+1 = 1, 2, 2, 1, 3, 3, ... for n = 0, 1, 2, 3, 4, 5, .... This is equivalent to the formula (a(n)+1)*(0, 1, 1) = a(3n, 3n+1, 3n+2). - M. F. Hasler, Aug 26 2012, corrected Aug 23 2022
LINKS
Reinhard Zumkeller, Table of n, a(n) for n = 0..10000
FORMULA
a(3^(t+1)*k+m) = t for 3^t > m > 3^(t-1).
a(3n) = 0, a(3n+1) = a(3n+2) = a(n)+1. - M. F. Hasler, Aug 26 2012, corrected thanks to a remark from Jianing Song, Aug 23 2022
EXAMPLE
The numbers 0, 1, 2, 3, 4, 5, 6, 7 are written in base 3 as 0, 1, 2, 10, 11, 12, 20, 21 and thus end in a(0..7) = 0, 1, 1, 0, 2, 2, 0, 2 nonzero digits.
MATHEMATICA
cnzd[n_]:=Module[{idn3=IntegerDigits[n, 3], len}, len=Length[idn3]; Which[ idn3[[len]] == 0, 0, Position[idn3, 0]=={}, len, True, len-Position[idn3, 0] [[-1, 1]]]]; Array[cnzd, 110, 0] (* Harvey P. Dale, Jun 07 2016 *)
PROG
(PARI) A215879(n, b=3)=n=divrem(n, b); for(c=0, oo, n[2]||return(c); n=divrem(n[1], b))
(PARI) a(n)=my(k); while(n%3, n\=3; k++); k \\ Charles R Greathouse IV, Sep 26 2013
(Haskell)
a215879 n = if t == 0 then 0 else a215879 n' + 1
where (n', t) = divMod n 3
-- Reinhard Zumkeller, Dec 28 2012
(Python)
def A215879(n):
c = 0
while (a:=divmod(n, 3))[1]:
c += 1
n = a[0]
return c # Chai Wah Wu, Oct 15 2022
CROSSREFS
KEYWORD
nonn,base,nice
AUTHOR
M. F. Hasler, Aug 25 2012
STATUS
approved