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

 

posted @ 2014-07-29 14:16  NanoApe  阅读(57)  评论(0编辑  收藏
AmazingCounters.com