一道數論題
阿新 • • 發佈:2018-11-11
給定正整數 \(N\),求同時滿足下列條件的正整數對 \((a,b)\) 的數量:
- \(a+b \le N\)。
- \(a+b~|~ab\)。
對於 \(60 \%\) 的測試點,\(1 \le N \le 10^{7}\)。
對於全部測試點,\(1 \le N \le 10^{14}\)。
題解
先考慮對每個 \(1 \le x \le N\) 計算滿足 \(a+b=x\) 的數對數量。
當 \(x~|~a(x-a)\) 時,有 \(x~|~a^{2}\)。考慮 \(x\) 的質因數分解 \(p^{a_1}p^{a_2} \dots p^{a_k}\),令 \(b_i = \lceil {\frac{a_i}{2}} \rceil\)
不妨換一種方式計數。令 \(g = \gcd(a, b)\),\(\alpha = \frac{a}{g}\),\(\beta = \frac{b}{g}\),那麼滿足條件的 \((a,b)\) 有 \(\alpha + \beta = \alpha \cdot \beta \cdot g\)。因為 \(\gcd(\alpha, \beta) = 1\)