亮色主题 暗色主题
纯手打(悲)
同余
定义
设整数 m ≠ 0 m\ne0 m = 0 。若 m ∣ ( a , b ) m\mid(a,b) m ∣ ( a , b ) ,称 m m m 为模数(模),a a a 同余于 b b b 模 m m m ,b b b 是 a a a 模 m m m 的剩余,记作 a ≡ b m o d m a\equiv b\mod m a ≡ b mod m ,这样的等式,称为模 m m m 的同余式,简称同余式。
性质
自反性:a ≡ a m o d m a\equiv a\mod m a ≡ a mod m 。
对称性:若 a ≡ b m o d m a\equiv b\mod m a ≡ b mod m ,则 b ≡ a m o d m b\equiv a\mod m b ≡ a mod m 。
传递性:若 a ≡ b m o d m a\equiv b\mod m a ≡ b mod m ,b ≡ c m o d m b\equiv c\mod m b ≡ c mod m ,则 a ≡ c m o d m a\equiv c\mod m a ≡ c mod m 。
线性运算:若 a , b , c , d ∈ Z a,b,c,d\in \mathbf{Z} a , b , c , d ∈ Z ,m ∈ N ∗ m\in \mathbf{N}^* m ∈ N ∗ ,a ≡ b ( m o d m ) a\equiv b(\mod m) a ≡ b ( mod m ) ,c ≡ d ( m o d m ) c\equiv d(\mod m) c ≡ d ( mod m ) 则有:
a ∓ c ≡ b ∓ d ( m o d m ) a\mp c\equiv b\mp d(\mod m) a ∓ c ≡ b ∓ d ( mod m ) 。
a × c ≡ b × d ( m o d m ) a\times c\equiv b\times d(\mod m) a × c ≡ b × d ( mod m ) 。
若 a , b ∈ Z a,b\in \mathbf{Z} a , b ∈ Z ,k , m ∈ N ∗ k,m\in \mathbf{N}^* k , m ∈ N ∗ ,a ≡ b ( m o d m ) a\equiv b(\mod m) a ≡ b ( mod m ) ,则 a k ≡ b k ( m o d m k ) ak\equiv bk(\mod mk) ak ≡ bk ( mod mk ) 。
若 a , b ∈ Z a,b\in \mathbf{Z} a , b ∈ Z ,d , m ∈ N ∗ d,m\in \mathbf{N}^* d , m ∈ N ∗ ,d ∣ a d\mid a d ∣ a ,d ∣ b d\mid b d ∣ b ,d ∣ m d\mid m d ∣ m ,则当 a ≡ b m o d m a\equiv b\mod m a ≡ b mod m 成立时,有 a d ≡ b d m o d m d \dfrac{a}{d}\equiv \dfrac{b}{d}\mod \dfrac{m}{d} d a ≡ d b mod d m 。
若 a , b ∈ Z a,b\in \mathbf{Z} a , b ∈ Z ,d , m ∈ N ∗ d,m\in \mathbf{N}^* d , m ∈ N ∗ ,d ∣ m d\mid m d ∣ m ,则当 a ≡ b m o d m a\equiv b\mod m a ≡ b mod m 成立时,有 a ≡ b m o d d a\equiv b\mod d a ≡ b mod d 。
若 a , b ∈ Z a,b\in \mathbf{Z} a , b ∈ Z ,d , m ∈ N ∗ d,m\in \mathbf{N}^* d , m ∈ N ∗ ,则当a ≡ b m o d m a\equiv b\mod m a ≡ b mod m 成立时,有 gcd ( a , m ) = gcd ( b , m ) \gcd(a,m)=\gcd(b,m) g cd( a , m ) = g cd( b , m ) 。若 d d d 能整除 m m m 及 a a a ,b b b 中的一个,则 d d d 必定能整除 a a a ,b b b 中的另一个。
如果一个线性同余方程 a x ≡ 1 ( m o d b ) ax\equiv1(\mod b) a x ≡ 1 ( mod b ) ,则 x x x 称为 a m o d b a\mod b a mod b 的逆元,记作 a − 1 a^{-1} a − 1 。
数论函数
数论函数指定义域为正整数的函数。数论函数也可以视作一个数列。
积性函数
定义
若函数 f ( n ) f(n) f ( n ) 满足 f ( 1 ) = 1 f(1)=1 f ( 1 ) = 1 且 ∀ x , y ∈ N ∗ ∀x,y\in\mathbf{N}^* ∀ x , y ∈ N ∗ ,gcd ( x , y ) = 1 \gcd(x,y)=1 g cd( x , y ) = 1 都有 f ( x y ) = f ( x ) f ( y ) f(xy)=f(x)f(y) f ( x y ) = f ( x ) f ( y ) ,则 f ( n ) f(n) f ( n ) 为积性函数。
若函数 f ( n ) f(n) f ( n ) 满足 f ( 1 ) = 1 f(1)=1 f ( 1 ) = 1 且 ∀ x , y ∈ N ∗ ∀x,y\in\mathbf{N}^* ∀ x , y ∈ N ∗ 都有 f ( x y ) = f ( x ) f ( y ) f(xy)=f(x)f(y) f ( x y ) = f ( x ) f ( y ) ,则 f ( n ) f(n) f ( n ) 为完全积性函数。
性质
解释
若 f ( x ) f(x) f ( x ) 和 g ( x ) g(x) g ( x ) 均为积性函数,则以下函数也为积性函数:
h ( x ) = f ( x p ) h(x)=f(x^p)
h ( x ) = f ( x p )
h ( x ) = f p ( x ) h(x)=f^p(x)
h ( x ) = f p ( x )
h ( x ) = f ( x ) g ( x ) h(x)=f(x)g(x)
h ( x ) = f ( x ) g ( x )
h ( x ) = ∑ d ∣ x f ( d ) g ( x d ) h(x)=\sum\limits_{d\mid x}f(d)g(\dfrac{x}{d})
h ( x ) = d ∣ x ∑ f ( d ) g ( d x )
设 x = ∏ p i k i x=∏p_i^{k_i} x = ∏ p i k i
若 F ( x ) F(x) F ( x ) 为积性函数,则有 F ( x ) = ∏ F ( p i k i ) F(x)=∏F(p_i^{k_i}) F ( x ) = ∏ F ( p i k i ) 。
若 F ( x ) F(x) F ( x ) 为完全积性函数,则有 F ( x ) = ∏ F ( p i ) k i F(x)=∏F(p_i)^{k_i} F ( x ) = ∏ F ( p i ) k i 。
例子
单位函数:ε ( n ) = [ n = 1 ] \varepsilon(n)=[n=1] ε ( n ) = [ n = 1 ] 。(完全积性)
恒等函数:i d k ( n ) = n k id_k(n)=n^k i d k ( n ) = n k ,i d 1 ( n ) id_1(n) i d 1 ( n ) 同常记作 i d ( n ) id(n) i d ( n ) 。(完全积性)
常数函数:1 ( n ) = 1 1(n)=1 1 ( n ) = 1 。(完全积性)
除数函数:σ k ( n ) = ∑ d ∣ n d k \sigma_k(n)=\sum\limits_{d\mid n}d^k σ k ( n ) = d ∣ n ∑ d k 。σ 0 ( n ) \sigma_0(n) σ 0 ( n ) 通常记作 d ( n ) d(n) d ( n ) 或 τ ( n ) \tau(n) τ ( n ) 。σ 1 ( n ) \sigma_1(n) σ 1 ( n ) 通常记作 σ ( n ) \sigma(n) σ ( n ) 。
欧拉函数
定义
欧拉函数(Euler's totient function),即 φ ( n ) φ(n) φ ( n ) ,表示的是小于等于 n n n 和 n n n 互质的数的个数。
形式化的表示:φ ( n ) = ∑ i = 1 n [ gcd ( i , n ) = 1 ] φ(n)=\sum\limits_{i=1}^n[\gcd(i,n)=1] φ ( n ) = i = 1 ∑ n [ g cd( i , n ) = 1 ]
φ ( n ) = 1 φ(n)=1 φ ( n ) = 1 。
n
1
2
3
4
5
6
7
8
9
10
φ ( n ) φ(n) φ ( n )
1
2
4
2
6
4
6
4
递推式:φ ( n ) = n × ∏ ( 1 − 1 p i ) φ(n)=n\times∏(1-\dfrac{1}{p_i}) φ ( n ) = n × ∏ ( 1 − p i 1 )
性质
欧拉函数是积性函数。
若 n = p k n=p^k n = p k ,其中 p p p 是质数,那么 φ ( n ) = p k − p k − 1 φ(n)=p^k-p^{k-1} φ ( n ) = p k − p k − 1 。(根据定义可知)
由唯一分解定理,设 n = ∏ i − 1 s p i k i n=∏\limits_{i-1}^sp_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 φ(n)=n\times∏\limits_{i-1}^s\dfrac{p_i-1}{p_i} φ ( n ) = n × i − 1 ∏ s p i p i − 1 。
计算单个数的欧拉函数值
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;
}
}
if(n > 1) ans = ans / n * (n - 1);
return ans;
}
筛法求欧拉函数
每一个合数 n n n 都是被最小的质因子 p j p_j p j 筛掉
考虑 n / p j n/p_j n / p j 是否能整除 p j p_j p j
void pre(int n)
{
phi[1] = 1;
int cnt = 0;
for(int i = 2;i <= n;i++)
{
if(!not_prime[i])
{
prime[cnt++];
phi[i] = i - 1;
}
for(int j = 0;j < cnt;j++)
{
if(i * prime[j] > n) break;
not_prime[i * prime[j]] = true;
if(i % prime[j] == 0)
{
phi[i * prime[j]] = phi[i] * prime[j];
break;
}
phi[i * prime[j]] = phi[i] * phi[prime[j]];
}
}
}
欧拉定理(欧拉降幂)
欧拉定理
与欧拉函数紧密相关的一个定理就是欧拉定理。其描述如下:
若 gcd ( a , m ) = 1 \gcd(a,m)=1 g cd( a , m ) = 1 ,则 a φ ( m ) ≡ 1 ( m o d m ) a^{φ(m)}\equiv1(\mod m) a φ ( m ) ≡ 1 ( mod m ) 。
扩展欧拉定理
$$a^b\equiv\begin{cases}
a^{b\mod φ(p)},&\gcd(a,p)=1\\
a^b,&\gcd(a,p)\ne1,b<φ(p)\\
a^{b\mod φ(p)+φ(p)},&\gcd(a,p)\ne1,b\geφ(p)
\end{cases}(\mod p)
$$
数论分块
介绍
例子
原理
n i \dfrac{n}{i} i n 最多只有 2 n 2\sqrt{n} 2 n 种取值。
过程