有一个长宽均为 的网格,每个格子的长宽均为 。除了最左下角的网格外,其他格子中均有一个半径为 的圆,圆心在格子的正中心。现在你站在最左下角的格子的正中心,求你能够看到多少个圆,视线不能够穿过圆。
输入一行包含两个整数 , ,题目中的 为 。
Constraints
$ n \leq 10^9$ ,
Solution
首先可以确定一个结论:只有能够看到圆心才能够看到这个圆。
枚举圆 和圆 ,根据点到直线的距离公式 ,可得若 挡住了 ,则 。
只考虑 互质的情况,那么一定存在 , , ,这时候只要满足 就不会被挡住。
所以令 ,枚举约数 ,得出:
具体计算方式见代码。
Code
1 |
|