allocatemem(9^8) until(print,r=List;for(i=fordiv(I*n=input,d,conj(t=n/d)-d|listput(r,abs([d+t,d-t]/2)))^listsort(r,input<q=""),#r\/2,print1(q,r[i][1]"^2 + "r[i][2]"^2");q=" = "))
Note that non-ascii characters in the above source code will be escaped (such as \x9f).