Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).
%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