perimeter =: {{ x+y+%:(x^2)+y^2 }} count =: monad define pairs =. y=perimeter"0/~>:i.y top =. <:/~i.y +/,pairs*.top ) problem39 =: >:{.\:count"0>:i.1e3 NB. Takes around 3-4 minutes to compute