Reminder: The OEIS is hiring a new managing editor, and the application deadline is January 26.
%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