前面都是比较经典的套路
设 d = g c d ( a , b ) d=gcd(a,b) d=gcd(a,b),则 a = d k 1 , b = d k 2 a=dk_1,b=dk_2 a=dk1,b=dk2且 g c d ( k 1 , k 2 ) = 1 gcd(k_1,k_2)=1 gcd(k1,k2)=1,于是题目条件转化为 d k 1 + d k 2 ∣ d 2 k 2 dk_1+dk_2|d^2k_2 dk1+dk2∣d2k2,即 k 1 + k 2 ∣ d k 2 k_1+k_2|dk_2 k1+k2∣dk2,设 k 3 ( k 1 + k 2 ) = d k 2 k_3(k_1+k_2)=dk_2 k3(k1+k2)=dk2,则 ( d − k 3 ) k 2 = k 3 k 1 (d-k_3)k_2=k_3k_1 (d−k3)k2=k3k1,由于 k 1 , k 2 k_1,k_2 k1,k2互质,所以有 k 3 = k 2 k 4 k_3=k_2k_4 k3=k2k4,即 d = k 4 ( k 1 + k 2 ) d=k_4(k_1+k_2) d=k4(k1+k2)
剩下的看这篇题解
比较新的思想就是我们没办法处理 k 1 , k 2 k_1,k_2 k1,k2的互质,所以只能枚举,枚举的话尽量缩小范围,就像题解一样缩小范围就好了