WAなら計算速度は問題ないからどっかミスってる
他人のコードを読むのは解説がないと厳しいときもあるな
俺は短めのコードを主に参考にしてる

x^2+y^2=r^2は原点にある円の方程式で半径がr、高校数学で習う
x,y,dは整数だから、x^2+y^2もx^2+y^2-Dも整数
M=|x^2+y^2-D|=0つまりx^2+y^2=Dのときだけ円周上に点がある
それ以外でMが小さい時は円の周辺の点を表してる
D=1とすると(x,y)=(1,0),(0,1),(-1,0),(0,-1)が円周上にある
D=2とすると(x,y)=(1,1),(1,-1),(-1,1),(-1,-1)が円周上にある
D=3とすると円周上には点はないが(x,y)=(1,1)とか(2,0)とかが円の近くにあると言う感じ
数学は苦手だからあまりうまく解説はできないわ