P3768 简单的数学题(杜教筛)
P3768 简单的数学题
题目描述
输入一个整数 \(n\) 和一个整数 \(p\),你需要求出:
\[\large\left(\sum_{i=1}^n\sum_{j=1}^n ij \gcd(i,j)\right) \mod p
\]
其中 \(\gcd(a,b)\) 表示 \(a\) 与 \(b\) 的最大公约数。
数据范围
\(n \leq 10^{10}, 5 \times 10^8 \leq p \leq 1.1 \times 10^9\) 且 \(p\) 为质数。
解题思路
先推一波式子
\[\large \sum_{i=1}^n\sum_{j=1}^n ij \gcd(i,j)\\
\large = \sum_{d=1}^nd\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd} ijd^2 [gcd(i,j)=1]\\
\large = \sum_{d=1}^nd^3\sum_{k=1}^{\frac nd}\mu(k)k^2\sum_{i=1}^{\frac n{dk}}\sum_{j=1}^{\frac n{dk}} ij\\
\large = \sum_{T=1}^nT^2\sum_{k|T}\mu(k)\frac Tk\sum_{i=1}^{\frac n{T}}\sum_{j=1}^{\frac n{T}} ij\\
\large = \sum_{T=1}^nT^2\varphi(T)\sum_{i=1}^{\frac n{T}}\sum_{j=1}^{\frac n{T}} ij\\
\large = \sum_{T=1}^nSum(\frac nT)^2(T^2\varphi(T))\\
\]
后面的可以杜教筛,前面的整除分块即可