を通る傾きの直線の切片はで、傾きの直線の切片はになる。
とりあえず重複のことは忘れて番兵毎に数えると、傾きの直線の通るマスは個あり、傾きの直線の通るマスはのとき個、のとき個あることがわかるので、まずはこれらの総和が基本になる。
次に、重複を除くことを考える。まず、切片と傾きが同じ直線は完全に重なるので、登場した切片を記録しておいて、前に見たものは無視することで重複を避けられる。
最後に傾きの直線と傾きの直線の交点の数を引く必要がある。まず、交点が格子点になるのは切片が偶数同士、奇数同士の場合なので、切片が偶数の直線についてのみ考えることにする。(奇数のものの交点も同様に数えられる。) 傾きで切片がの直線と傾きの直線が与えられた領域内で交わるのは、後者の切片が]に入っているとき、またその時に限るので、ソートしておいてそれぞれ二分探索で数えられる。