このアルゴリズムは、アレクサンダー・シェンによる偉大な「アルゴリズムとプログラミング: 問題と解決策」から取られています (つまり、演習 1.1.28)。
以下はロシア語からの私の翻訳ですので、間違いや曖昧さをお許しください. そう感じたら訂正してください。
アルゴリズムは何をすべきか
与えられた自然なnアルゴリズムを使用して、不等式の解の数を計算します
x*x + y*y < n
実数の操作を使用しない自然数 (非負数)
パスカルで
k := 0; s := 0;
{at this moment of execution
(s) = number of solutions of inequality with
x*x + y*y < n, x < k}
while k*k < n do begin
l := 0; t := 0;
while k*k + l*l < n do begin
l := l + 1;
t := t + 1;
end;
{at this line
(t) = number of solutions of k*k + y*y < n
for given (k) with y>=0}
k := k + 1;
s := s + t;
end;
{k*k >= n, so s = number of solutions of inequality}
さらに、テキストの中でシェンは、このアルゴリズムによって実行される操作の数は「計算できるようにnに比例する」と簡単に述べています。ですから、厳密な数学でそれを計算する方法をお尋ねします。