login

Reminder: The OEIS is hiring a new managing editor, and the application deadline is January 26.

Indices of XOR-positive triangular numbers. That is, numbers n such that triangular(n) XOR triangular(n+1) is a triangular number, where XOR is the bitwise logical XOR operator.
5

%I #32 May 04 2021 09:02:08

%S 0,12,18,24,40,86,102,177,333,357,628,665,669,689,840,845,860,861,

%T 1124,1185,1196,1206,1377,1418,1706,1890,1906,1956,2138,2204,2388,

%U 2524,2588,2843,2970,2994,3035,3107,3154,3234,3299,3606,3824,3854,4005,4021,4169,4185,4568,4580

%N Indices of XOR-positive triangular numbers. That is, numbers n such that triangular(n) XOR triangular(n+1) is a triangular number, where XOR is the bitwise logical XOR operator.

%C Generated triangular numbers: A220689(n) = A000217(a(n)) XOR A000217(a(n)+1).

%C Indices of triangular numbers in A220689: A220698.

%C Terms of A220698 that appear in this sequence: A220752.

%H Harvey P. Dale, <a href="/A224218/b224218.txt">Table of n, a(n) for n = 1..1000</a>

%e Triangular(18) XOR triangular(19) = 171 XOR 190 = 21, because 21 is a triangular number, 18 is in the sequence.

%p read("transforms") ;

%p isA000217 := proc(n)

%p local t1;

%p t1:=floor(sqrt(2*n));

%p if n = t1*(t1+1)/2 then

%p return true

%p else

%p return false;

%p end if;

%p end proc:

%p isA224218 := proc(n)

%p XORnos(A000217(n),A000217(n+1)) ;

%p isA000217(%) ;

%p end proc:

%p A224218 := proc(n)

%p option remember;

%p if n = 1 then

%p 0;

%p else

%p for a from procname(n-1)+1 do

%p if isA224218(a) then

%p return a;

%p end if;

%p end do:

%p end if;

%p end proc: # _R. J. Mathar_, Apr 23 2013

%t Join[{0},Flatten[Position[Partition[Accumulate[Range[5000]],2,1],_?(OddQ[ Sqrt[1+8BitXor[#[[1]],#[[2]]]]]&),{1},Heads->False]]] (* _Harvey P. Dale_, Dec 05 2014 *)

%o (Python)

%o def rootTriangular(a):

%o sr = 1<<33

%o while a < sr*(sr+1)//2:

%o sr>>=1

%o b = sr>>1

%o while b:

%o s = sr+b

%o if a >= s*(s+1)//2:

%o sr = s

%o b>>=1

%o return sr

%o for i in range(1<<12):

%o s = (i*(i+1)//2) ^ ((i+1)*(i+2)//2)

%o t = rootTriangular(s);

%o if s == t*(t+1)//2:

%o print(str(i), end=',')

%Y Cf. A000217, A220689, A220698, A220752, A221643, A220518.

%K nonn,base

%O 1,2

%A _Alex Ratushnyak_, Apr 01 2013