原根查看源代码讨论查看历史
原根是一个数学符号。设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。[1]
例子
设m= 7,则φ(7)等于6。
设a= 2,由于2^3=8≡1(mod 7),2^6=64≡1(mod7),2^3≡2^6(mod7),所以 2 不是模 7 的一个原根。设a= 3,由于3^1≡3(mod 7),3^2≡2(mod 7),3^3≡6(mod 7),3^4≡4(mod 7),3^5≡5(mod 7),3^6≡1(mod 7),所以 3 是模 7 的一个原根。
补充一点,根据原根的性质1,只需要验证3^1,3^2,3^3,3^6即可,这样可以简化运算。
定义
原根是一种数学符号,设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数)
假设一个数g是P的原根,那么g^i mod P的结果两两不同,且有 1<g<P,0<i<P,归根到底就是g^(P-1) = 1 (mod P)当且仅当指数为P-1的时候成立.(这里P是素数)。
简单来说,g^i mod p ≠ g^j mod p (p为素数),其中i≠j且i, j介于1至(p-1)之间,则g为p的原根。
求原根目前的做法只能是从2开始枚举,然后暴力判断g^(P-1) = 1 (mod P)是否当且仅当指数为P-1的时候成立。而由于原根一般都不大,所以可以暴力得到。
性质
原根具有以下性质:
(1)可以证明,如果正整数(a,m) = 1和正整数 d 满足a^d≡1(mod m),则 d 整除 φ(m)。因此Ordm(a)整除φ(m)。在例子中,当a= 3时,我们仅需要验证 3 的 1 、2、3 和 6 次方模 7 的余数即可。
(2)记δ =Ordm(a),则a^1,……a^(δ-1)模 m 两两不同余。因此当a是模m的原根时,a^0,a^1,……a^(δ-1)构成模 m 的简化剩余系。
(3)模m有原根的充要条件是m= 1,2,4,p,2p,p^n,其中p是奇质数,n是任意正整数。
(4)对正整数(a,m) = 1,如果 a 是模 m 的原根,那么 a 是整数模n乘法群(即加法群Z/mZ的可逆元,也就是所有与 m互素的正整数构成的等价类构成的乘法群)Zn的一个生成元。由于Zn有 φ(m)个元素,而它的生成元的个数就是它的可逆元个数,即 φ(φ(m))个,因此当模m有原根时,它有φ(φ(m))个原根。
原根存在条件
原根存在的条件有以下几个:
定理一:设p是奇素数,则模p的原根存在;
定理二:设g是模p的原根,则g或者g+p是模的原根;
定理三:设p是奇素数,则对任意,模的原根存在;
定理四:设1,则g是模的一个原根,则g与g+中的奇数是模2的一个原根。