var n = 20 say gather { for x in (1 .. n) { for y in (x .. n) { for z in (y .. n) { take([x,y,z]) if (x*x + y*y == z*z) } } } }