题目链接:
http://acm.split.hdu.edu.cn/showproblem.php?pid=5728
题意:
设$k=\sum_{i=1}^{m} \varphi (i\times n)\ mod\ 1000000007$,其中$n$无平方数因子,求$ans=k^{k^{k^{k^{…^k}}}}(\ mod \ p)$,其中$k$无穷多个,$1 \leq n, m, p \leq 10^{7}$
分析:
无穷次幂的处理见bzoj 3884
然后是化简式子,由于$n$无平方数因子,设$p$为$n$的质因子,则$gcd(p, {n \over p}) = 1$
利用到欧拉函数的两条性质:
- $若gcd(m,n)=1, 则\phi(mn)=\phi(m)\phi(n)$【积性函数性质】
- $若i\ mod\ p = 0, 那么 \phi(i \times p)=\phi(i)\times p$【利用$若gcd(a,b)=1,则gcd(a+b,b)=1$】
设$f(n,m)=\sum_{i=1}^m\phi(i\times n)$, 那么,
$f(n,m)=\sum_{i=1}^m\phi(i\times n)$
$=\sum_{i=1且p\mid i}^m\phi(i\times \frac{n}{p}\times p)+\sum_{i=1且p\nmid i }^{m}\phi(i\times \frac{n}{p}\times p)$
$=\phi(p)\sum_{i=1且p\mid i}^m\phi(i\times \frac{n}{p})+p\sum_{i=1且p\nmid i}^{m}\phi(i\times \frac{n}{p})$
$=\phi(p)\sum_{i=1且p\mid i}^m\phi(i\times \frac{n}{p})+(\phi(p)+1)\sum_{i=1且p\nmid i}^{m}\phi(i\times \frac{n}{p})$
$=\phi(p)\sum_{i=1且p\mid i}^m\phi(i\times \frac{n}{p})+\sum_{i=1且p\nmid i}^{m}\phi(i\times \frac{n}{p})$
$=\phi(p)\sum_{i=1}^m\phi(i\times \frac{n}{p})+\sum_{i=1}^{\frac{m}{p}}\phi(i\times n)$
$=\phi(p)f(\frac{n}{p},m)+f(n,\frac{m}{p})$
依次递归下去即可,处理类似记忆化搜索,最终最多遍历$n$的所有质因数。
代码:
|
|