【题目大意】
求出
x,y,z,≤n
的
x2+y2=z2
的所有
x,y,z
互质正整数解的个数,
n≤1012
【参考解法】
首先由
x2=(z+y)×(z−y)
与
x,y,z
互质得到
(z−y)与(z+y)一定
可以分别表示为一个完全平方数,若设
{z+y=m2z−y=n2
,则有
⎧⎩⎨⎪⎪⎪⎪z=m2+n22y=m2−n22
,与是所有的解都可以通过
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪z=m2+n22x=mny=m2−n22
表示,由于要求互质,且为正整数,所以
m,n
必须同时为奇数,于是题目就变为了,求解这样得
m,n
的组数。不妨设
m≥n
设
maxn
为枚举当前
m
时的
我们要求的是
∑m=12×L√[m is odd]∑n=1maxn[gcd(n,m)=1]×[n is odd]
可以这样变形
∑m=12×L√∑n=1maxn[m is odd]∑d|n,mμ(d)×[n is odd]
调整枚举顺序
∑d=12L√μ(d)∑m=1⌊2L√d⌋[m is odd]∑n=1⌊maxnd⌋[n×d is odd]
枚举 d 与