A245547 Write n>=1 as either n=2^k-2^r with 0 <= r <= k-1, in which case a(2^k-2^r)=(k-r)*(k-r+1)/2, or as n=2^k-2^r+j with 2 <= r <= k-1, 1 <= j < 2^r-1, in which case a(2^k-2^r+j)=(k-r)*(k-r+1)*a(j).
1, 1, 3, 1, 2, 3, 6, 1, 2, 2, 6, 3, 6, 6, 10, 1, 2, 2, 6, 2, 4, 6, 12, 3, 6, 6, 18, 6, 12, 10, 15, 1, 2, 2, 6, 2, 4, 6, 12, 2, 4, 4, 12, 6, 12, 12, 20, 3, 6, 6, 18, 6, 12, 18, 36, 6, 12, 12, 36, 10, 20, 15, 21, 1, 2, 2, 6, 2, 4, 6, 12, 2, 4, 4, 12, 6, 12, 12, 20, 2, 4, 4, 12, 4, 8, 12, 24, 6
Offset: 1
Examples
Arranged into blocks: 1, 1, 3, 1, 2, 3, 6, 1, 2, 2, 6, 3, 6, 6, 10, 1, 2, 2, 6, 2, 4, 6, 12, 3, 6, 6, 18, 6, 12, 10, 15, 1, 2, 2, 6, 2, 4, 6, 12, 2, 4, 4, 12, 6, 12, 12, 20, 3, 6, 6, 18, 6, 12, 18, 36, 6, 12, 12, 36, 10, 20, 15, 21, ...
Programs
-
Maple
G:=[seq(n,n=0..30)]; m:=2; f:=proc(n) option remember; global m,G; local k,r,j,np; k:=1+floor(log[2](n)); np:=2^k-n; if np=1 then r:=0; j:=0; else r:=1+floor(log[2](np-1)); j:=2^r-np; fi; if j=0 then G[k-r]; else m*G[k-r]*f(j); fi; end; [seq(f(n),n=1..120)];
Comments