【题目大意】
求出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与