A303767 May code of n: a(0) = 0, and for n > 0, if n = 2^k, a(n) = n + a(n-1), otherwise, when n = 2^k + r (with 0 < r < 2^k), then a(n) = 2^k + a(r-1); see comments for equivalent alternative descriptions.
0, 1, 3, 2, 6, 4, 5, 7, 15, 8, 9, 11, 10, 14, 12, 13, 29, 16, 17, 19, 18, 22, 20, 21, 23, 31, 24, 25, 27, 26, 30, 28, 60, 32, 33, 35, 34, 38, 36, 37, 39, 47, 40, 41, 43, 42, 46, 44, 45, 61, 48, 49, 51, 50, 54, 52, 53, 55, 63, 56, 57, 59, 58, 62, 126, 64, 65, 67, 66, 70, 68, 69, 71, 79, 72, 73, 75, 74, 78, 76, 77, 93, 80, 81
Offset: 0
Examples
From _Michael De Vlieger_, May 23 2018: (Start) Table below shows the initial 17 terms at right. First column is index n, second shows "." if A303760(n) = largest divisor of A303760(n-1), or factor p. n p\d m=A303760(n) A054841(m) a(n) ------------------------------------------- 0 . 1 0 0 1 2 2 1 1 2 3 6 11 3 3 . 3 10 2 4 5 15 110 6 5 . 5 100 4 6 2 10 101 5 7 3 30 111 7 8 7 210 1111 15 9 . 7 1000 8 10 2 14 1001 9 11 3 42 1011 11 12 . 21 1010 10 13 5 105 1110 14 14 . 35 1100 12 15 2 70 1101 13 16 11 770 11101 29 ... (End)
Links
Crossrefs
Programs
-
Mathematica
Map[FromDigits[#, 2] &@ Reverse@ If[# == 1, {0}, Function[f, ReplacePart[Table[0, {PrimePi[f[[-1, 1]]]}], #] &@ Map[PrimePi@ First@ # -> Last@ # &, f]]@ FactorInteger@ #] &@# &, Nest[Append[#, Block[{d = Divisors@ #[[-1]], p = 2}, If[Complement[d, #] != {}, Complement[d, #][[1]], While[Nand[Mod[#[[-1]], p] != 0, FreeQ[#, p #[[-1]] ] ], p = NextPrime@ p]; p #[[-1]] ] ] ] &, {1}, 83]] (* Michael De Vlieger, May 23 2018 *)
-
PARI
A209229(n) = (n && !bitand(n,n-1)); A053644(n) = { my(k=1); while(k<=n, k<<=1); (k>>1); }; \\ From A053644 A303767(n) = if(!n,n,if(A209229(n),n+A303767(n-1),A053644(n)+A303767(n-A053644(n)-1))); \\ Program based on new recurrence added May 06 2018
-
PARI
up_to = (2^7)-1; A006519(n) = (2^valuation(n, 2)); A019565(n) = {my(j,v); factorback(Mat(vector(if(n, #n=vecextract(binary(n), "-1..1")), j, [prime(j), n[j]])~))}; \\ From A019565 A048675(n) = { my(f = factor(n)); sum(k=1, #f~, f[k, 2]*2^primepi(f[k, 1]))/2; }; v303767 = vector(up_to); m303768 = Map(); w=1; for(n=1,up_to,s = Set([]); for(m=1,w, if((bitor(w,m)==w) && !mapisdefined(m303768,m), s = setunion(Set([A019565(m)]),s))); if(length(s)>0, w = A048675(vecmin(s)), b=A006519(1+w); while(bitand(w,b) || mapisdefined(m303768,w+b), b <<= 1); w += b); v303767[n] = w; mapput(m303768,w,n)); A303767(n) = if(!n,n,v303767[n]); A303768(n) = if(!n,n,mapget(m303768,n));
Formula
Extensions
Name replaced with an equivalent, but simpler definition by Antti Karttunen, May 06 2018
Comments