(Python)
def isTriangular(a):
sr = 1 << (int.bit_length(int(a)) >> 1)
a += a
while a < sr*(sr+1): sr>>=1
b = sr>>1
while b:
s = sr+b
if a >= s*(s+1): sr = s
b>>=1
return (a==sr*(sr+1))
for n in range(10000):
product = n*n*(n+1)//2
if isTriangular(product): print(product, end=', ')
|