%I #12 May 13 2013 18:50:09
%S 1,1,2,0,4,0,5,1,7,0,4,0,18,0,2,0,17,0,16,0,15,0,9,0,39,0,9,0,61,0,10,
%T 3,27,0,18,0,56,0,8,0,80,0,48,1,41,0,12,0,118,1,10,0,90,0,30,2,24,0,24
%N Numbers of triples {x, y, z} such that z >= y > 0 and triangular(x) + triangular(y) * triangular(z) = 2^n.
%e {0, 1, 1} is the only triple producing 2^0, so a(0) = 1.
%e {1, 1, 3} and {3, 1, 1} are the triples producing 2^2, so a(2) = 2.
%o (C)
%o #include <stdio.h>
%o #include <math.h>
%o typedef unsigned long long U64;
%o U64 isTriangular(U64 a) { // ! Must be a <= (1<<63)
%o U64 s = sqrt(a*2);
%o if (a>=(1ULL<<63)) {
%o if (a==(1ULL<<63)) return 0;
%o printf("Error: a = %llu\n", a), exit(1);
%o }
%o return (s*(s+1)/2 == a);
%o }
%o int main() {
%o U64 c, n, x, tx, y, ty, z, prod;
%o for (n = 1; n>0 && n <= (1ULL<<63); n+=n) {
%o for (c = 0, x = tx = 0; tx <= n; ++x, tx+=x)
%o for (z=prod=n-tx, y=ty=1; ty<=z; ++y, ty+=y, z=prod/ty)
%o if ((z * ty == prod) && isTriangular(z)) c++;
%o printf("%llu, ", c);
%o }
%o return 0;
%o }
%Y Cf. A000217, A224928, A225536.
%K nonn,hard,more
%O 0,3
%A _Alex Ratushnyak_, May 08 2013