- 定义:设 (a,m)=1,使 ad≡1(modm) 成立的最小正整数 d,记为 ordm(a)。
- 简单说,就是一个数在模 m 意义下,通过反复自乘回到 “单位元(1)” 所需的最小次数。
- 性质:
- ak≡1(modm)⟺ordm(a)∣k。
- ordm(a)∣ϕ(m)(由欧拉定理可知)。
- ordm(ak)=gcd(ordm(a),k)ordm(a)。
求解步骤:
- 步骤 1: 确保互素性首先,检查 a 和 n 是否互素。如果 gcd(a,n)=1,则 a 模 n 的阶不存在。如果 gcd(a,n)=1,则阶 ordn(a) 存在,并且是 ϕ(n) 的因子。
- 步骤 2: 计算欧拉函数 ϕ(n)计算模 n 的欧拉函数值 ϕ(n)。分解 n: 将 n 分解为标准素数幂形式:n=p1e1p2e2⋯prer计算 ϕ(n): 使用欧拉ϕ函数的乘积公式:ϕ(n)=n(1−p11)(1−p21)⋯(1−pr1)或使用更便于计算的形式:ϕ(n)=ϕ(p1e1)ϕ(p2e2)⋯ϕ(prer)其中 ϕ(pe)=pe−pe−1=pe−1(p−1)。
- 步骤 3: 确定候选阶数 k找到 ϕ(n) 的所有正因子(包括 1 和 ϕ(n) 本身)。Candidate set K={k∣k is a positive divisor of ϕ(n)}
- 步骤 4: 检验并找到最小阶数从小到大依次检验 K 中的因子 k。最小的满足 ak≡1(modn) 的 k 就是 ordn(a)。优化技巧: 不必检验所有因子。只需检验所有 ϕ(n) 的最大真因子(即 piϕ(n),其中 pi 是 ϕ(n) 的素因子)。如果 aϕ(n)/pi≡1(modn) 对所有 ϕ(n) 的素因子 pi 都成立,那么阶数就是 ϕ(n)。