順着套路就能獲得:\(Ans = \sum_{T=1}\lfloor \frac{n}{T} \rfloor \lfloor \frac{m}{T} \rfloor \sum_{d|T} f(d) \mu(\frac{T}{d})\)。
問題變爲求\(\sum_{d|T} f(d) \mu(\frac{T}{d})\)。
你能夠見這裏。
你還能夠見這裏。
然而我就是要再寫一遍你管我QwQ......
設\(T = \prod_{i=1}^K p_i^{a_i}\),\(d = \prod_{i=1}^Kp_i^{b_i}\),顯然有\(a_i\ge b_i\),看到\(\mu\)顯然\(|a_i-b_i|\leq 1\)纔有意義。
若存在\(a_i>a_j\),則\(b_i\ge b_j\),因此\(b_j\)能夠操控符號,即\(f(d) = 0\)。
不然說明\(a_1=a_2...=a_K\),顯然只有當\(b_i=a_i-1\)對全部\(i\)都成立時,\(f\)的絕對值大小不同。
因此\(f(d) = (-1)^{K+1}\),記一下最小質因子和每一個數包含的不一樣質因子數,而後就能線性篩\(f\)了。html
把可用質數\(p\)弄出來,不一樣的\(p\)不會超過\(7\)個,那麼就是求\(\sum_{i=1}^K c_i p_i = n\)的合法\(c_i\)組的個數。
因爲\(p_i|S\),因此把方案按照\(c_i\% \frac{S}{p_i}\)後的結果分組,而後揹包處理\((S-1)(K+1)\)之內的答案。
每次枚舉模後方案的答案\(tS + n\% S\),而後設還須要\(x\)個\(S\),插板分配到\(K\)個質數中便可。函數
用擴歐那套理論可得:\(Ans = \sum_{x=1}^{P} gcd(x,P) [gcd(x,P)|Q]\)
枚舉\(d = gcd(x,P)\),\(Ans = \sum_{d|P,d|Q} d\varphi(\frac{P}{d})\)。
令\(Q' = gcd(P,Q)\),\(Ans = \sum_{d|P} d[d|Q']\varphi(\frac{P}{d}) = \sum_{d|Q'} d\varphi(\frac{P}{d})\)。
被小胖坑過的童鞋應該都能馬上反應過來這是狄利克雷卷積,只要算每一個質因子的答案便可。
枚舉一個質因子\(p\),設\(P\)中有\(a\)個,\(Q'\)中有\(b\)個。
若\(a > b\),\(ans(p) = (b + 1)(p-1)p^{a-1}\),若\(a=b\),\(ans(p) = b(p-1)p^{a-1} + p^a\)。
大數分解質因數用一下\(Miller-Rabin\)和\(Pollard-Rho\)就好了。spa
枚舉一個\(n\),而後要算\(S(n,m) = \sum_{i=1}^m \varphi(in)\)。
令\(d = gcd(i,n)\)。
順着套路展開:\(S(n,m) = \sum_{i=1}^m \varphi(i)\varphi(\frac{n}{d})d = \sum_{i=1}^m \varphi(i) \varphi(\frac{n}{d}) \sum_{e|d} \varphi(e)\)。
後面兩個玩意合併不了,不過很好解決。
咱們設\(n'y = n\),其中\(n'\)爲\(n\)的每一個質因子各取一個構成的數,\(d' = gcd(i,n')\)。
\(S(n,m) = y\sum_{i=1}^m \varphi(i) \varphi(\frac{n'}{d'})\sum_{e|d'}\varphi(e)\)。
那麼此時有\(\frac{n'}{d'} \perp e\),
\(S(n,m) = y\sum_{i=1}^m \varphi(i) \sum_{e|d'}\varphi(\frac{n'}{e}) = y\sum_{i=1}^m \varphi(i) \sum_{e|n',e|i} \varphi(\frac{n'}{e})\)。
\(S(n,m) = y\sum_{e|n'} \varphi(\frac{n'}{e}) \sum_{i=1}^{\lfloor \frac{m}{e} \rfloor} \varphi(ie) = y\sum_{e|n'} \varphi(\frac{n'}{e})S(e,\lfloor \frac{m}{e} \rfloor)\)。
遞歸作,\(n = 1\)時杜教篩求\(\varphi\)前綴和便可。htm
明擺着是叫你算每個質因子的貢獻,而後把它們都乘起來。
考慮歐拉函數\(\varphi(p^t) = (p-1) p^{t-1}\)。
因此每個質因子的貢獻爲\((\prod_{i=1}^n (\sum_{j=0}^{c_i} p^j) - 1) (p-1) + 1\),乘起來就好了。blog
順着套路推(設\(n\leq m\)),能夠獲得:
\(Ans = \sum_{T=1}^{n} (\sum_{i=1}^{\lfloor \frac{n}{T} \rfloor} i)(\sum_{j=1}^{\lfloor \frac{m}{T} \rfloor} j) \sum_{e|T} (\frac{T}{e})^{\frac{T}{e}} \mu(e) e^{2(\frac{T}{e})}\),暴力算便可。遞歸