「CodeForces-919E」Congruence Equation
给定a,b,n,p,求关于n的方程n⋅a^n≡b(mod p)在[1,x]中整数解的数量
题解
对原式$k \cdot a^k \equiv b \quad (\textrm{mod};p)$,考虑消去指数。由费马小定理,对质数$p$,有$a^{(p-1)} \equiv 1 \quad (\textrm{mod};p)$。
令$k=x\cdot(p-1)+y$,则原式转化为
$$(x\cdot(p-1)+y)\cdot a^{x\cdot(p-1)+y} \equiv b \quad (\textrm{mod};p)$$
$$(x\cdot(p-1)+y)\cdot a^{y} \equiv b \quad (\textrm{mod};p)$$
$$x\cdot(p-1)+y \equiv b \cdot a^{-y}\quad (\textrm{mod}\ p)$$
$$x\equiv y-b \cdot a^{-y}\quad (\textrm{mod}\ p)$$
问题转化为求$x\equiv y-b \cdot a^{-y}\quad (\textrm{mod}\ p)$在$(x\cdot(p-1)+y)∈[1,n]$中解的个数。
枚举$y∈[0,p-2]$,计算$x$的个数,其中若$x,y$均为0时$n=0$,需要减去。
代码
1 |
|