https://github.com/raineblog/blog/edit/main/docs/math/number-theory/euler.md
欧拉定理和费马小定理 欧拉函数 定义 欧拉函数(Euler's totient function),记为 φ ( n ) \varphi(n) φ ( n ) ,表示 1 ∼ n 1 \sim n 1 ∼ n 中与 n n n 互质的数的个数。
也可以表示为:φ ( n ) = ∑ i = 1 n [ gcd ( i , n ) = 1 ] \varphi(n) = \sum\limits_{i = 1}^n [\gcd(i, n) = 1] φ ( n ) = i = 1 ∑ n [ g cd( i , n ) = 1 ] .
例如:
φ ( 1 ) = 1 \varphi(1) = 1 φ ( 1 ) = 1 ,即 gcd ( 1 , 1 ) = 1 \gcd(1, 1) = 1 g cd( 1 , 1 ) = 1 ; φ ( 2 ) = 1 \varphi(2) = 1 φ ( 2 ) = 1 ,即 gcd ( 1 , 2 ) = 1 \gcd(1, 2) = 1 g cd( 1 , 2 ) = 1 ; φ ( 3 ) = 2 \varphi(3) = 2 φ ( 3 ) = 2 ,即 gcd ( 1 , 3 ) = 1 \gcd(1, 3) = 1 g cd( 1 , 3 ) = 1 ,gcd ( 2 , 3 ) = 1 \gcd(2, 3) = 1 g cd( 2 , 3 ) = 1 ;… \dots … 性质 欧拉函数是积性函数;即如果 gcd ( a , b ) = 1 \gcd(a, b) = 1 g cd( a , b ) = 1 ,那么 φ ( a × b ) = φ ( a ) × φ ( b ) \varphi(a \times b) = \varphi(a) \times \varphi(b) φ ( a × b ) = φ ( a ) × φ ( b ) 。 由唯一分解定理,设 n = ∏ i = 1 s p i k i \displaystyle n = \prod\limits_{i=1}^{s}p_i^{k_i} n = i = 1 ∏ s p i k i ,其中 p i p_i p i 是质数,有 φ ( n ) = n × ∏ i = 1 s p i − 1 p i \displaystyle \varphi(n) = n \times \prod\limits_{i = 1}^s{\frac{p_i - 1}{p_i}} φ ( n ) = n × i = 1 ∏ s p i p i − 1 。 当 n n n 是质数的时候,显然有 φ ( n ) = n − 1 \varphi(n) = n - 1 φ ( n ) = n − 1 (定义)。 实现 根据性质 2 2 2 可以写出:
int euler_phi (int n) {
int ans = n;
for (int i = 2 ; i * i <= n; i++) {
if (n % i == 0 ) {
ans = ans / i * (i - 1 );
while (n % i == 0 ) n /= i;
}
}
return n > 1 ? ans / n * (n - 1 ) : ans;
}
线性筛求欧拉函数 注意到在线性筛中,每一个合数都是被最小的质因子筛掉。
比如设 p 1 p_1 p 1 是 n n n 的最小质因子,k = n / p 1 k = n / p_1 k = n / p 1 ,即 k p 1 = n kp_1 = n k p 1 = n ;
那么线性筛的过程中 n n n 通过 k × p 1 k \times p_1 k × p 1 筛掉。
观察线性筛的过程,我们还需要处理两个部分,下面对 k m o d p 1 k \bmod p_1 k mod p 1 分情况讨论:
如果 k m o d p 1 = 0 k \bmod p_1 = 0 k mod p 1 = 0 ,那么 k k k 包含了 n n n 的所有质因子;有: φ ( n ) = n × ∏ i = 1 s p i − 1 p i = p 1 × k × ∏ i = 1 s p i − 1 p i = p 1 × φ ( k ) \begin{aligned} \varphi(n) & = n \times \prod_{i = 1}^s{\frac{p_i - 1}{p_i}} \\\\ & = p_1 \times k \times \prod_{i = 1}^s{\frac{p_i - 1}{p_i}} \\\\ & = p_1 \times \varphi(k) \end{aligned} φ ( n ) = n × i = 1 ∏ s p i p i − 1 = p 1 × k × i = 1 ∏ s p i p i − 1 = p 1 × φ ( k ) 如果 k m o d p 1 ≠ 0 k \bmod p_1 \neq 0 k mod p 1 = 0 ,这时 k k k 和 p 1 p_1 p 1 是互质的,根据欧拉函数性质;有: φ ( n ) = φ ( p 1 ) × φ ( k ) = ( p 1 − 1 ) × φ ( k ) \begin{aligned} \varphi(n) & = \varphi(p_1) \times \varphi(k) \\\\ & = (p_1 - 1) \times \varphi(k) \end{aligned} φ ( n ) = φ ( p 1 ) × φ ( k ) = ( p 1 − 1 ) × φ ( k ) int primes[N], cnt;
bool is[N];
int phi[N];
int get_phi (int n) {
phi[1 ] = 1 ;
for (int i = 2 ; i <= n; ++i) {
if (!is[i]) primes[++cnt] = i, phi[i] = i - 1 ;
for (int j = 0 ; primes[j] <= n / i; ++j) {
is[primes[j] * i] = 1 ;
if (i % primes[j]) phi[primes[j] * i] = phi[i] * (primes[j] - 1 );
else {
phi[primes[j] * i] = phi[i] * primes[j];
break ;
}
}
}
}
欧拉定理 前置知识 前置知识1:完全剩余系 完全剩余系(最小非负完全剩余系),定义为:Z m = { 0 , 1 , … , m − 1 } \mathbb Z_m = \{0, 1, \dots, m - 1\} Z m = { 0 , 1 , … , m − 1 } .
具体的定义为 整数集 S = { r 1 , r 2 , … , r s } S = \{r_1, r_2, \dots, r_s\} S = { r 1 , r 2 , … , r s } ,满足:
任意不同元素 r i ≢ r j ( m o d m ) r_i \not \equiv r_j \pmod m r i ≡ r j ( mod m ) . 任意 a ∈ Z a \in \mathbb Z a ∈ Z ,存在 r i ≡ a ( m o d m ) r_i \equiv a \pmod m r i ≡ a ( mod m ) . 也就是模 m m m 意义下的完全剩余系包含 0 ∼ m − 1 0 \sim m - 1 0 ∼ m − 1 内的所有整数,长度为 m m m 。
前置知识2:简化剩余系 简化剩余系,定义为:Φ m = { r ∈ Z m : r ⊥ m } \Phi_m = \{r \in \mathbb Z_m : r \perp m\} Φ m = { r ∈ Z m : r ⊥ m } .
具体的定义为 整数集 S = { r 1 , r 2 , … , r s } S = \{r_1, r_2, \dots, r_s\} S = { r 1 , r 2 , … , r s } ,满足:
任意 r i ⊥ m r_i \perp m r i ⊥ m . 任意不同元素 r i ≢ r j ( m o d m ) r_i \not \equiv r_j \pmod m r i ≡ r j ( mod m ) . 任意 a ⊥ m a \perp m a ⊥ m ,存在 r ≡ a ( m o d m ) r \equiv a \pmod m r ≡ a ( mod m ) . 也就是模 m m m 意义下的简化剩余系包含 0 ∼ m − 1 0 \sim m - 1 0 ∼ m − 1 内所有与 m m m 互质的整数,长度为 φ ( m ) \varphi(m) φ ( m ) 。
前置知识3:欧拉定理的引理 若 a ⊥ m a \perp m a ⊥ m ,且有 S = { r 1 , r 2 , … , r s } S = \{r_1, r_2, \dots, r_s\} S = { r 1 , r 2 , … , r s } 为一个简化剩余系, 则 S ′ = { a r 1 , a r 2 , … , a r s } S' = \{ar_1, ar_2, \dots, ar_s\} S ′ = { a r 1 , a r 2 , … , a r s } 也是一个简化剩余系。
证明:
对于任意 r i r_i r i :由 a ⊥ m a \perp m a ⊥ m 、r i ⊥ m r_i \perp m r i ⊥ m ,得 a r i ⊥ m ar_i \perp m a r i ⊥ m (互质性质). 对于任意两个不同元素:由 r i ≢ r j ( m o d m ) r_i \not \equiv r_j \pmod m r i ≡ r j ( mod m ) 、a ⊥ m a \perp m a ⊥ m ,得 a r i ≢ a r j ( m o d m ) ar_i \not \equiv ar_j \pmod m a r i ≡ a r j ( mod m ) . 由 ∣ S ′ ∣ = ∣ S ∣ |S'| = |S| ∣ S ′ ∣ = ∣ S ∣ 及 ( 2 ) (2) ( 2 ) 得:任意 r i r_i r i 一定有与其对应的 a r j ar_j a r j ; 因为对于任意 t ⊥ m t \perp m t ⊥ m ,存在 r i ≡ t ( m o d m ) r_i \equiv t \pmod m r i ≡ t ( mod m ) ,也一定存在 a r j ≡ t ( m o d m ) ar_j \equiv t \pmod m a r j ≡ t ( mod m ) . 满足简化剩余系的定义,因此 S ′ S' S ′ 是一个简化剩余系。
定义 若 gcd ( a , m ) = 1 \gcd(a, m) = 1 g cd( a , m ) = 1 ,则 a φ ( m ) ≡ 1 ( m o d m ) a^{\varphi(m)} \equiv 1 \pmod{m} a φ ( m ) ≡ 1 ( mod m ) 。
证明 设 S = { r 1 , r 2 , ⋯ , r φ ( m ) } S = \{ r_1, r_2, \cdots, r_{\varphi(m)} \} S = { r 1 , r 2 , ⋯ , r φ ( m ) } 为模 m m m 意义下的简化剩余系, 则 S ′ = { a r 1 , a r 2 , ⋯ , a r φ ( m ) } S' = \{ ar_1, ar_2, \cdots, ar_{\varphi(m)} \} S ′ = { a r 1 , a r 2 , ⋯ , a r φ ( m ) } 也为模 m m m 意义下的简化剩余系.
因为 a ⊥ m a \perp m a ⊥ m ,所以 r 1 r 2 … r φ ( m ) ≡ a r 1 a r 2 … a r φ ( m ) ( m o d m ) r_1r_2 \dots r_{\varphi(m)} \equiv ar_1ar_2 \dots ar_{\varphi(m)} \pmod m r 1 r 2 … r φ ( m ) ≡ a r 1 a r 2 … a r φ ( m ) ( mod m ) , 即 r 1 r 2 … r φ ( m ) ≡ a φ ( m ) r 1 r 2 … r φ ( m ) ( m o d m ) r_1r_2 \dots r_{\varphi(m)} \equiv a^{\varphi(m)} r_1r_2 \dots r_{\varphi(m)} \pmod m r 1 r 2 … r φ ( m ) ≡ a φ ( m ) r 1 r 2 … r φ ( m ) ( mod m ) .
因为 r 1 r 2 … r φ ( m ) ⊥ m r_1r_2 \dots r_{\varphi(m)} \perp m r 1 r 2 … r φ ( m ) ⊥ m (互质性质),所以可以约去; 即 a φ ( m ) ≡ 1 ( m o d m ) a^{\varphi(m)} \equiv 1 \pmod m a φ ( m ) ≡ 1 ( mod m ) .
应用 指数取模 a k ≡ a k m o d φ ( p ) ( m o d p ) a^k \equiv a^{k \bmod \varphi(p)} \pmod p a k ≡ a k mod φ ( p ) ( mod p )
证明:
a u + v φ ( p ) ≡ a u a v φ ( p ) ( m o d p ) ≡ a u ( a φ ( p ) ) v ( m o d p ) ≡ a u ( 1 ) v ( m o d p ) ≡ a u ( m o d p ) \begin{align} a^{u + v\varphi(p)} &\equiv a^ua^{v\varphi(p)} &\pmod p \\ &\equiv a^u(a^{\varphi(p)})^v &\pmod p \\ &\equiv a^u(1)^v &\pmod p \\ &\equiv a^u &\pmod p \end{align} a u + v φ ( p ) ≡ a u a v φ ( p ) ≡ a u ( a φ ( p ) ) v ≡ a u ( 1 ) v ≡ a u ( mod p ) ( mod p ) ( mod p ) ( mod p ) 费马小定理 若 p p p 为素数,由于 φ ( p ) = p − 1 \varphi(p) = p - 1 φ ( p ) = p − 1 ,代入欧拉定理可立即得到费马小定理:
若 p p p 为素数,gcd ( a , p ) = 1 \gcd(a, p) = 1 g cd( a , p ) = 1 ,则 a p − 1 ≡ 1 ( m o d p ) a^{p - 1} \equiv 1 \pmod{p} a p − 1 ≡ 1 ( mod p ) 。
也可以对费马小定理进行拓展:若 p p p 是素数,则 a p ≡ a ( m o d p ) a^p\equiv a\pmod p a p ≡ a ( mod p ) 。
Reference [1] https://oi-wiki.org/math/number-theory/euler/ [2] https://oi-wiki.org/math/number-theory/sieve/ [3] https://oi-wiki.org/math/number-theory/fermat/ [4] https://zhuanlan.zhihu.com/p/581822244 [5] https://zhuanlan.zhihu.com/p/536214853 [6] https://zhuanlan.zhihu.com/p/577742188 [7] https://blog.csdn.net/weixin_43145361/article/details/107083879 [8] https://baike.baidu.com/item/简化剩余系/3712809
本页面最近更新:正在加载中 ,更新历史 。 编辑页面:在 GitHub 上编辑此页 ! 本页面贡献者:raine 。