# generating Pythagorean triplets limit = 1500000 limit_search = 900 squares = [ x*x for x in xrange(limit) ] triangles = [ set() for x in xrange(limit+1) ] for m in xrange(1, limit_search): for n in xrange(1, m): (a,b,c) = (squares[m] - squares[n], 2*m*n, squares[m] + squares[n]) if a > b: (a,b,c) = (b,a,c) k = 1 while True: if k*(a+b+c) > limit: break triangles[k*a + k*b + k*c].add((k*a,k*b,k*c)) k += 1 count = 0 for t in triangles: if len(t) == 1: count += 1 print count