function range(begin, end) { for (let i = begin; i < end; ++i) yield i; } function triples(n) { return [ [x, y, z] for each(x in range(1, n + 1)) for each(y in range(x, n + 1)) for each(z in range(y, n + 1)) if (x * x + y * y == z * z) ] } for each(var triple in triples(20)) print(triple);