题目链接:
${x^{2}+y^{2}=r^{2} }$
${\Rightarrow y^{2}=(r-x)(r+x)}$
令${d=gcd(r-x,r+x)}$
则${y^{2}=d^{2}*\frac{r+x}{d}*\frac{r-x}{d}}$
再令${A=\frac{r+x}{d}}$,${B=\frac{r-x}{d}}$
则${y^{2}=d^{2}*A*B}$
考虑${y^{2}}$是完全平方数,${d^{2}}$是完全平方数,又${gcd(A,B)=1}$那么${A,B}$都是完全平方数。
设${A=a^{2}}$,${B=b^{2}}$
${A+B=a^{2}+b^{2}}$
${\Rightarrow \frac{2*r}{d}=a^{2}+b^{2}}$
考虑枚举${\frac{2*r}{d}}$,这一步的复杂度是${O(\sqrt{r})}$的,然后再在${\left [ 1,\sqrt{2*\frac{r}{d}}/2 \right ]}$的范围内枚举${a}$,进而可以算出${A,b,B}$,然后判断${A,B}$是否互质,$B$是否为完全平方数,这样子就算出了第一象限的答案,然后将$ans*4+4$,算是统计了每一个象限的并且加上了坐标轴上的四个点。
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include