阶与原根
阶
定义:满足 \(a^n\equiv 1\pmod p\) 的最小的正整数 \(n\) 称作 \(a\) 在模 \(p\) 意义下的阶,记作 \(ord_p(a)\)。
一些显然的性质:
性质1:对于 \(1\le i\le ord_p(a)\),\(a^i\) 不同余。
性质2:对于 \(a^n \equiv1\pmod p\),\(ord_p(a)\mid n\)。
性质3:如果 \(a^n\equiv a^m\pmod p\),则 \(n\equiv m\pmod {ord_p(a)}\)。
其他一些性质。
神奇的性质:对于质数 \(p\),\(ord_p(x)=\dfrac{\varphi(p)}{\gcd(\varphi(p),x)}\)。
原根
定义:若 \(\gcd(g,m)=1\) 且 \(ord_m(g)=\varphi(m)\),则 \(g\) 是 \(m\) 的原根。原根可能有多个。
性质:当 \(m\) 为质数时,\(g^i\bmod m(0<i<m)\) 互不相同。
原根个数:若 \(m\) 有原根,\(m\) 的原根个数为 \(\varphi(\varphi(m))\)。
原根存在:原根存在,当且仅当 \(m=2,4,p^k,2p^k\),其中 \(p\) 为奇质数。
原根判定:对于 \(\gcd(g,m)=1\),若 \(g\) 是 \(m\) 的原根,当且仅当对于 \(\varphi(m)\) 的每个素因子 \(p\),都有 \(g^{\frac{\varphi(m)}{p}}\ne 1\pmod m\)。
原根范围:素数的最小原根为 \(O(m^{0.25})\)。
求最小原根:由于最小原根的范围,我们可以从小到大枚举每个数暴力地判断是否为原根,复杂度 \(O(\sqrt m)\)。
习题
- P6091 [模板] 原根
- AT abc212_g
AT abc212_g
求有多少整数对 \((x,y)\) 满足存在一个正整数 \(n\) 使得 \(x^n\equiv y\pmod P\),给定质数 \(P\),\(P\le10^{12}\)。
题解:
根据质数的原根的性质,我们找到 \(P\) 的原根 \(g\),则 \(x,y\) 可以表示成 \(g^a,g^b\),那么
根据欧拉定理,
那么根据同余方程的性质,
枚举 \(\gcd\) 的值,
右边的和式当且仅当 \(d\mid (P-1)\) 时不为 \(0\)。
右边是 \(\varphi\) 的定义,
\(d\) 为 \(P-1\) 的因数时有值,
因数取遍,则
直接算为 \(O(d(P-1)\sqrt{P-1})\)。