摘要: 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数。n<=2000 000 000。显然我们可以算出(x>0,y>0,x<=y)的情况数在*8(其他方向都是对称的)在勾股数中有这样一个结论:a^2+b^2=c^2,(a,b,c)=1则有m,n( (m,n)=1 )满足:a=m^2-n^2b=2*m*nc=m^2+n^2在这个问题中,c=kr,所以我们先枚举k,再枚举m^2+n^2=c/k且(m,n)=1的组数,最后HASH去重就行了。CODE:#include<cstdio>#include<set>#include< 阅读全文