题目中要求的式子是:b×gcd(a,b)mod (a+b)=0b \times \gcd(a, b) \mod (a + b) = 0b×gcd(a,b)mod(a+b)=0
设 gcd(a,b)=x, a=x×i, b=x×j\gcd(a, b) = x,~a = x \times i,~b = x \times jgcd(a,b)=x, a=x×i, b=x×j
条件变为:
- x×j∗xmod ((i+j)×x)=0x \times j * x \mod ((i + j) \times x) = 0x×j∗xmod((i+j)×x)=0
- 1≤x∗i≤n1 \le x * i \le n1≤x∗i≤n,1≤x∗j≤m1 \le x * j \le m1≤x∗j≤m
- gcd(i,j)=1\gcd(i, j) = 1gcd(i,j)=1
根据第一个条件可知 j×xj \times xj×x 是 i+ji + ji+j 的倍数,因为 gcd(j,i+j)=1\gcd(j, i + j) = 1gcd(j,i+j)=1,所以 xxx 是 i+ji + ji+j 的倍数,所以 x≥i+jx \ge i + jx≥i+j,然后根据第二个式子就知道 i≤n, j≤mi \le \sqrt n,~j \le \sqrt mi≤n, j≤m。
枚举 (i,j)(i, j)(i,j) 即可,复杂度是 O(n×m×log(min(n,m)))O(\sqrt n \times \sqrt m \times \log(\min(n, m)))O(n×m×log(min(n,m)))。