(C)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int isTriangular(unsigned long long a) {
unsigned long long sr = sqrt(a*2);
return (sr*(sr+1) == a*2);
}
int main() {
unsigned long long n, tn, t, r;
for (n = tn = 0; tn < (1ULL<<63); tn += ++n) {
for (r=0, t=tn; t; t>>=1) r = r*2 + (t&1);
if (isTriangular(r)==0) continue;
for (r=0, t=tn; t; t/=10) r = r*10 + (t%10);
if (isTriangular(r)==0) continue;
printf("%llu, ", tn);
}
return 0;
}
|