设 m 是正整数,a是整数,若a模m的阶等于φ(m),则称 a 为 模m的一个原根。(其中φ(m)表示m的欧拉函数)
阶:gcd(a,m)=1,使得
成立的
最小的 r,称为
a 对 模m 的 阶。
φ(m):在[1,m)的区间内与m互质的数的个数。
求模素数p的原根a的方法:
因为p为素数,所以φ(p)=p-1, 这题就是要找最小的a使得 a^(p-1)%p = 1 成立(根据费马小定理,该式一定成立),
先求p-1所有不同的 质因子 p1,p2…pm,
对任何整数 a ∈[1,p-1], 检验 a 是否为 p 的原根,
检验方法:a^((p-1)/p1),a^((p-1)/p2),...a^((p-1)/pm) 中是否存在一个 模p 等于 1 ,
存在的话 a 就不是 模p 的一个原根(即p-1就不是a对模p的阶),否则a就为原根。
https://blog.csdn.net/u013486414/article/details/47781857