BZOJ-1041 圆上的整点
题意:
已知N的值,求X^2 + Y^2 = N^2的解的个数(XYN均为正整数)
方程一看就知道和勾股数有关。。。没错,这题就是一道数论题~
我记得有个公式挺好用的,最简勾股数的XYZ总能符合以下公式:(m,n为正整数且m>n)
X = 2 * m * n
Y = m^2 - n^2
Z = m^2 + n^2
然后依次枚举N的因数R,对于每个因数R再判断R是否有m和n能满足R = m^2 + n^2,有的话加入Answer(记得去重)。
最后输出Answer*8+4就行了。
Code:
http://ideone.com/VMH1eJ