阶的定义及求法
称使得 $a^t\equiv 1\pmod p$ 成立的最小正整数 $t_{min}$ 为 $a$ 对模数 $p$ 的阶
有如下定理
又有 $a^{\varphi(p)}\equiv 1\pmod p\Longrightarrow \delta_p(a)~|~\varphi(p)$ 可得一个 $\Theta(\sqrt{p}+\log^2p)$ 求阶的算法
首先将 $\varphi(p)$ 分解成 $\varphi(p)=k_1^{q_1}\times k_2^{q_2}\times \cdots \times k_r^{q_r}$ 的形式
原根的定义及求法
原根 $g$ 是使得 $g^{1\sim p-1}$ 在模 $p$ 意义下的值与 $[1,p-1]$ 形成一一对应关系的值
有如下定理
于是可以导出一个计算 $g_{min}$ 的算法
有如下定理
所以以上算法时间复杂度为 $\Theta(\sqrt{p}+p^{\frac{1}{4}}\omega(p))$