[NOI Online 2022 普及组] 数学游戏(民间数据) - 洛谷

简化题意:

给定 x,z 求是否存在满足条件 z=x×y×gcd(x,y)y,如果存在请输出,如果不存在输出 1


输麻了,md 普及比提高还难。

考虑设 d=gcd(x,y) 那么 x=kxd,y=kyd,z=kxkyd3

考虑我们最终要求的东西就是 kyd 考虑用根据三元方程组肯定是可以表示出的,考虑用已知量来表示未知,kyd=zxd,那么本质上我们只要求出 d 就行了 ,考虑到我们可以通过 gcd 的条件进行迭代,因为 gcd(kx,ky)=1 考虑通过这个性质构造出与 d 有关的式子。

发现 gcd(x,y)=gcd(kxd,kyd),将 kyd=zxd 带入可以得到 gcd(x,zxd)=d

发现右边只是多了一个 1d,考虑这个东西是 kydzxd 的,所以让其变成 kyd2,但是这样不能直接变换,发现 kx,ky 对我们的答案一点影响都没有,所以左边只要也出现一个 d2 即可。

那么得到式子 gcd(x2,zx)=d2,游戏结束。