摘要
求 $x^a=b\mod (2k+1)$ 的解数
第一步显然是将 $2k+1$ 质因数分解
题面
解
$$
2k+1=\prod p_i^{c_i}
$$
答案即为各方程 $x^a=b\mod p_i^{c_i}$ 的解数的积
分类讨论
最简单的是 $p^c|b$ 这意味着 $p^t|x^a$
其中 $t$ 为 ${\left \lfloor \frac {c-1}{a} \right \rfloor+1}$
解数即为 $p^{c-t}$
之后考虑 $\gcd (p^c, b)=1$
求原根之后变成 $ax=b\mod m$
其中 $m=\varphi (p^c)$
最后是 $\gcd (p^c, b)>1$
记 $b=p^t\ast d$, $d\perp p$
易知 $a|t$
之后扣掉 $p^t$ ,记 $y=\frac {x}{p^{t/a}}$
$y^a=d\mod p^{c-t}$
注意解出来个数还要乘 $p^{t-t/a}$
(拓模的范围,之后扣掉 $p|y$ )
(有趣的是 $y$ 解出来自然不是 $p$ 的倍数)
Pickupwin: 听说保证有解……
Code
1 |
|