时隔多年,终于又有了一套我能改完的题……
A.神炎皇
遇到这种要求整除的题显然拆出gcd
设$d=gcd(a,b)\ \ \ a'=\frac{a}{d} \ \ \ b'=\frac{b}{d}$
原式转化为$a'd+b'd|a'db'd$
$a'+b'|a'b'd$
又因为$gcd(a',d')=1$
所以$a'+b'$一定不是$a'b'$的因子,进而得到$(a'+b')|d$
又由$a+b \leq n \rightarrow (a'+b')d \leq n \rightarrow a'+b' \leq \sqrt{n}$
不妨枚举$s=a'+b'$
那么满足$gcd(a',b')=1$的合法数对有多少个?
由更相减损术可得$gcd(a,b)=gcd(a+b,b)$
所以$a',b'$共$\varphi (s)$对
那合法的$d$也就只有$\frac{n}{s^2}$个
答案即$\sum \limits _{i=2}{n} \varphi (i) \times \frac{n}{i^2}$
注意到当$i> \sqrt{n}$时每项为0,所以枚举到$\sqrt{n}$即可
复杂度$O(\sqrt{n})$。