原根(模板+证明)
Posted H-w-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原根(模板+证明)相关的知识,希望对你有一定的参考价值。
原根
定义:
设 m ∈ N ∗ m\\in\\mathbb{N^*} m∈N∗, a ∈ Z a\\in\\mathbb{Z} a∈Z.若 ( a , m ) = 1 (a,m)=1 (a,m)=1,且 δ m ( a ) = ϕ ( m ) \\delta_m(a)=\\phi(m) δm(a)=ϕ(m),则称 a a a为模 m m m的原根(注: a , m a,m a,m互质).
原根判定定理
若 g g g是模 m m m的一个原根,则对于 ϕ ( m ) \\phi(m) ϕ(m)的任何大于 1 1 1且不为自身的因数 p p p,都有 g ϕ ( m ) p ≡ 1 ( m o d m ) g^{\\frac{\\phi(m)}p}\\equiv1(mod~m) gpϕ(m)≡1(mod m).
证明:
假设存在一个 t < μ ( m ) t<\\mu(m) t<μ(m)使得 a t ≡ 1 ( m o d m ) a^t\\equiv1(mod~m) at≡1(mod m)且 ∀ i ∈ [ 1 , k ] : a ϕ ( m ) d i ≡ 1 ( m o d m ) \\forall i\\in[1,k]:a^{\\frac {\\phi(m)}{d_i}}\\equiv1(mod~m) ∀i∈[1,k]:adiϕ(m)≡1(mod m).
由裴蜀定理得,一定存在一组 k , x k,x k,x满足 k t = x ϕ ( m ) + ( t , μ ( m ) ) kt=x\\phi(m)+(t,\\mu(m)) kt=xϕ(m)+(t,μ(m)); 由欧拉定理 / / /费马小定理得 a ϕ ( p ) ≡ 1 ( m o d p ) a^{\\phi(p)}\\equiv1(mod~p) aϕ(p)≡1(mod p);
∴ 1 ≡ a k t ≡ a x ϕ ( m ) a ( t , ϕ ( m ) ) ≡ a ( t , ϕ ( m ) ) ( m o d m ) \\therefore 1\\equiv a^{kt}\\equiv a^{x\\phi(m)}a^{(t,\\phi(m))}\\equiv a^{(t,\\phi(m))}(mod~m) ∴1≡akt≡axϕ(m)a(t,ϕ(m))≡a(t,ϕ(m))(mod m)
∵ t < ϕ ( m ) ∴ ( t , ϕ ( m ) ) ≤ t < ϕ ( m ) \\because t<\\phi(m)~\\therefore(t,\\phi(m))\\le t<\\phi(m) ∵t<ϕ(m) ∴(t,ϕ(m))≤t<ϕ(m)
∵ ( t , ϕ ( m ) ) ∣ ϕ ( m ) , ∴ ( t , ϕ ( m ) ) 一 定 至 少 整 除 ϕ ( m ) d i 中 的 至 少 一 个 \\because (t,\\phi(m))|\\phi(m),\\therefore(t,\\phi(m))一定至少整除\\frac {\\phi(m)}{d_i}中的至少一个 ∵(t,ϕ(m))∣ϕ(m),∴(t,ϕ(m))一定至少整除diϕ(m)中的至少一个。
设 ( t , ϕ ( m ) ) ∣ ϕ ( m ) d i (t,\\phi(m))|\\frac {\\phi(m)}{d_i} (t,ϕ(m))∣diϕ(m),则 a ϕ ( m ) d i ≡ a ( t , ϕ ( m ) ) ≡ 1 ( m o d m ) a^{\\frac {\\phi(m)}{d_i}}\\equiv a^{(t,\\phi(m))}\\equiv1(mod~m) adiϕ(m)≡a(t,ϕ(m))≡1(mod m)。
∴ \\therefore ∴ 假设不成立,原命题成立
原根的个数
如果一个数 m m m有原根 g g g,则它的原根个数为 ϕ ( ϕ ( m ) ) \\phi(\\phi(m)) ϕ(ϕ(m))。
证明:
如果
m
m
m存在原根
g
g
g,则
δ
m
(
g
k
)
=
δ
m
(
g
)
(
δ
m
(
g
)
,
k
)
(
阶
的
性
质
)
i
f
(
k
,
δ
m
(
g
)
)
=
1
且
1
<
k
<
ϕ
(
m
)
的
k
有
ϕ
(
ϕ
(
m
)
)
个
。
∴
原
根
有
ϕ
(
ϕ
(
m
)
)
个
。
\\delta_m(g^k)=\\frac {\\delta_m(g)}{(\\delta_m(g), k)}(阶的性质)\\\\ if~(k,\\delta_m(g))=1且1<k<\\phi(m)的k有\\phi(\\phi(m))个。\\\\ \\therefore 原根有\\phi(\\phi(m))个。
δm(gk)=(δm(g),k)δm(g)(阶的性质)if (k,δm(g))=1且1<k<ϕ(m)的k有ϕ(ϕ(m))个。∴原根有ϕ(ϕ(m))个。
在模
m
m
m的情况下,原根一定是
ϕ
(
ϕ
(
m
)
)
\\phi(\\phi(m))
ϕ(ϕ(m))。
原根的存在定理
一个数m存在原根当且仅当 m = 2 , 4 , p α , 2 p α m=2,4,p^{\\alpha},2p^{\\alpha} m=2,4,pα,2pα,其中 p p p为奇素数。 α ∈ N ∗ \\alpha\\in\\mathbb{N^*} α∈N∗。
证明:待补。
题目:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e6+10;
const int inf = 1e9+7;
ll phi[N], tot, p[N];
bool st[N];
bool check(int n) {//判断是否存在原根
if(n == 2 || n == 4以上是关于原根(模板+证明)的主要内容,如果未能解决你的问题,请参考以下文章
hdu 4992 Primitive Roots 求原根模板