前置知识
Dirichlet卷积初步
前言
本章节默认
n
=
∏
i
=
1
t
p
i
k
i
n=\prod_{i=1}^{t}p_i^{k_i}
n = ∏ i = 1 t p i k i
一、欧拉函数
1.
1.
1 . 通项公式
φ
(
n
)
=
∏
i
=
1
t
(
p
i
−
1
)
p
i
k
i
−
1
=
∏
i
=
1
t
(
1
−
1
p
i
)
p
i
k
i
=
n
∏
i
=
1
t
(
1
−
1
p
i
)
\varphi(n)=\prod_{i=1}^{t}(p_i-1)p_i^{k_i-1}=\prod_{i=1}^{t}(1-\frac{1}{pi})p_i^{k_i}=n\prod_{i=1}^{t}(1-\frac{1}{pi})
φ ( n ) = i = 1 ∏ t ( p i − 1 ) p i k i − 1 = i = 1 ∏ t ( 1 − p i 1 ) p i k i = n i = 1 ∏ t ( 1 − p i 1 ) 证明可以在百度百科中搜到,这里略过。证明
2.
2.
2 . 欧拉定理降幂
欧拉定理
a
p
−
1
≡
1
(
m
o
d
p
)
p
为
质
数
a^{p-1}\equiv1(mod\space \space p)\qquad p为质数
a p − 1 ≡ 1 ( m o d p ) p 为 质 数 证明: 引理:
若
m
a
−
n
a
≡
0
(
m
o
d
p
)
且
g
c
d
(
a
,
p
)
=
1
,
则
(
m
−
n
)
为
p
的
倍
数
若ma-na \equiv 0(mod\space \space p)且gcd(a,p)=1,则(m-n)为p的倍数
若 m a − n a ≡ 0 ( m o d p ) 且 g c d ( a , p ) = 1 , 则 ( m − n ) 为 p 的 倍 数
那么
a
,
2
a
,
3
a
,
.
.
.
,
(
p
−
1
)
a
%
p
a,2a,3a,...,(p-1)a\%p
a , 2 a , 3 a , . . . , ( p − 1 ) a % p 的余数必定各不相同,分别为
1
,
2
,
3
,
.
.
.
,
(
p
−
1
)
1,2,3,...,(p-1)
1 , 2 , 3 , . . . , ( p − 1 ) ,(
a
a
a 不为
p
p
p 的倍数) 全部相乘,得
(
p
−
1
)
!
a
p
−
1
≡
(
p
−
1
)
!
(
m
o
d
p
)
(p-1)!a^{p-1}\equiv(p-1)!(mod\space\space p)
( p − 1 ) ! a p − 1 ≡ ( p − 1 ) ! ( m o d p )
a
p
−
1
≡
1
(
m
o
d
p
)
a^{p-1}\equiv1(mod\space \space p)
a p − 1 ≡ 1 ( m o d p ) 广义欧拉定理
a
φ
(
p
)
≡
1
(
m
o
d
p
)
g
c
d
(
a
,
p
)
=
1
a^{\varphi(p)}\equiv1(mod\space \space p)\qquad gcd(a,p)=1
a φ ( p ) ≡ 1 ( m o d p ) g c d ( a , p ) = 1 证明: 设
1
−
(
p
−
1
)
1-(p-1)
1 − ( p − 1 ) 中与
p
p
p 互质的数为
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x 1 , x 2 , . . . , x n ,那么
x
1
a
,
x
2
a
,
.
.
.
,
x
n
a
%
p
x_1a,x_2a,...,x_na\%p
x 1 a , x 2 a , . . . , x n a % p 的余数也各不相同,且为
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x 1 , x 2 , . . . , x n ,证明方式与上面同理。
应用:在快速幂中指数过大,如求
a
b
c
%
p
(
p
为
质
数
)
a^{b^c}\%p\qquad(p为质数)
a b c % p ( p 为 质 数 ) 时
(
a
,
b
,
c
<
=
1
0
12
)
(a,b,c<=10^{12})
( a , b , c < = 1 0 1 2 ) 就可以
long long quickpow ( long long a, long long b, long long Mod)
int main ( ) {
int a, b, c, p;
scanf ( "%lld%lld%lld%lld" , & a, & b, & c, & p) ;
printf ( "%lld\n" , quickpow ( a, quickpow ( b, c, p- 1 ) , p) ;
}
3.
I
d
=
φ
∗
I
3.Id=\varphi*I
3 . I d = φ ∗ I
4.
φ
=
μ
∗
I
d
4.\varphi=\mu*Id
4 . φ = μ ∗ I d
3
,
4
3,4
3 , 4 的证明方法见Dirichlet卷积初步
5.
∑
n
i
−
1
[
g
c
d
(
i
,
n
)
=
1
]
×
i
=
n
×
φ
(
n
)
+
[
n
=
1
]
2
5.\sum_{n}^{i-1}[gcd(i,n)=1]\times i=\frac{n\times\varphi(n)+[n=1]}{2}
5 . ∑ n i − 1 [ g c d ( i , n ) = 1 ] × i = 2 n × φ ( n ) + [ n = 1 ]
证明:当
n
=
1
n=1
n = 1 时,易证等式成立
当
n
≠
1
n\not =1
n = 1 时,因为
g
c
d
(
i
,
n
)
=
g
c
d
(
n
−
i
,
n
)
gcd(i,n)=gcd(n-i,n)
g c d ( i , n ) = g c d ( n − i , n ) ,所以所有的
i
i
i 必成对出现,一共有
φ
(
n
)
2
对
\frac{\varphi(n)}{2}对
2 φ ( n ) 对 ,所以和为
n
×
φ
(
n
)
2
\frac{n\times\varphi(n)}{2}
2 n × φ ( n )
6.
φ
(
i
j
)
=
φ
(
i
)
φ
(
j
)
g
c
d
(
i
,
j
)
φ
(
g
c
d
(
i
,
j
)
)
6.\varphi(ij)=\frac{\varphi(i)\varphi(j)gcd(i,j)}{\varphi(gcd(i,j))}
6 . φ ( i j ) = φ ( g c d ( i , j ) ) φ ( i ) φ ( j ) g c d ( i , j )
证明:由于
φ
\varphi
φ 为积性函数,所以我们只需证明满足质数的整数次幂的情况。
当
i
=
1
或
j
=
1
i=1或j=1
i = 1 或 j = 1 时显然成立。
设
i
=
p
s
,
j
=
p
t
i=p^s,j=p^t
i = p s , j = p t ,则
φ
(
i
)
φ
(
j
)
g
c
d
(
i
,
j
)
φ
(
g
c
d
(
i
,
j
)
)
\frac{\varphi(i)\varphi(j)gcd(i,j)}{\varphi(gcd(i,j))}
φ ( g c d ( i , j ) ) φ ( i ) φ ( j ) g c d ( i , j )
=
(
p
−
1
)
2
p
s
+
t
+
m
i
n
(
s
,
t
)
−
2
(
p
−
1
)
p
m
i
n
(
s
,
t
)
−
1
=\frac{(p-1)^2p^{s+t+min(s,t)-2}}{(p-1)p^{min(s,t)-1}}
= ( p − 1 ) p m i n ( s , t ) − 1 ( p − 1 ) 2 p s + t + m i n ( s , t ) − 2
=
(
p
−
1
)
p
s
+
t
−
1
=(p-1)p^{s+t-1}
= ( p − 1 ) p s + t − 1
=
φ
(
p
s
+
t
)
=
φ
(
i
j
)
=\varphi(p^{s+t})=\varphi(ij)
= φ ( p s + t ) = φ ( i j )
二、莫比乌斯函数
首先,要明白它的定义式:
对于一个数n,
{
∑
d
∣
n
μ
(
d
)
}
=
[
n
=
1
]
\{\sum_{d|n}\mu(d)\}=[n=1]
{ ∑ d ∣ n μ ( d ) } = [ n = 1 ]
当
n
n
n 不等于
1
1
1 时,
n
n
n 所有因子的莫比乌斯函数值的
和
和
和 为
0
0
0 。
易得,
μ
(
1
)
=
1
\mu(1)=1
μ ( 1 ) = 1 ,取
n
=
p
k
n=p^k
n = p k (
p
p
p 为质数,
k
>
1
k>1
k > 1 ),由定义式可得:
μ
(
n
)
=
μ
(
1
)
+
μ
(
p
)
+
μ
(
p
2
)
+
.
.
.
+
μ
(
p
k
−
1
)
=
0
\mu(n)=\mu(1)+\mu(p)+\mu(p^2)+...+\mu(p^{k-1})=0
μ ( n ) = μ ( 1 ) + μ ( p ) + μ ( p 2 ) + . . . + μ ( p k − 1 ) = 0 取
k
=
2
k=2
k = 2 ,得
μ
(
p
)
=
−
1
\mu(p)=-1
μ ( p ) = − 1
然后可以进一步推出对于
∀
k
≥
2
,
μ
(
p
k
)
=
0
∀k≥2,\mu(p^k)=0
∀ k ≥ 2 , μ ( p k ) = 0
然后我们就得到了一个结论:当
n
n
n 的一个质因子的次数大于等于
2
2
2 时,
μ
(
n
)
=
0
\mu(n)=0
μ ( n ) = 0
由于
μ
\mu
μ 函数为积性函数,所以
μ
(
i
j
)
=
μ
(
i
)
μ
(
j
)
\mu(ij)=\mu(i)\mu(j)
μ ( i j ) = μ ( i ) μ ( j )
当
n
n
n 不存在一个质因子的次数大于
2
2
2 时,我们设
n
=
∏
i
=
1
t
p
i
n=\prod_{i=1}^{t}p_i
n = ∏ i = 1 t p i
∴
μ
(
n
)
=
μ
(
p
1
)
×
μ
(
p
2
)
×
.
.
.
×
μ
(
p
t
)
=
(
−
1
)
t
\therefore \qquad \mu(n)=\mu(p_1)\times\mu(p_2)\times...\times\mu(p_t)=(-1)^t
∴ μ ( n ) = μ ( p 1 ) × μ ( p 2 ) × . . . × μ ( p t ) = ( − 1 ) t 综上所述
μ
(
n
)
=
{
0
n
有
平
方
因
子
(
−
1
)
t
o
t
h
e
r
w
i
s
e
\mu(n)=\left\{ \begin{aligned} 0\qquad n有平方因子 \\ (-1)^t \qquad otherwise\\ \end{aligned} \right.
μ ( n ) = { 0 n 有 平 方 因 子 ( − 1 ) t o t h e r w i s e
void sieve ( ) {
mu[ 1 ] = 1 ;
for ( int i= 2 ; i<= n; i++ ) {
if ( ! flag[ i] ) prime[ ++ cnt] = i, mu[ i] = - 1 ;
for ( int j= 1 ; j<= cnt&& i* prime[ j] <= n; j++ ) {
flag[ i* prime[ j] ] = 1 ;
if ( i% prime[ j] == 0 ) break ;
mu[ i* prime[ j] ] -= mu[ i] ;
}
}
}
三、约数个数函数
一个重要的性质
d
(
i
j
)
=
∑
k
∣
i
∑
l
∣
j
[
g
c
d
(
k
,
l
)
=
1
]
d(ij)=\sum_{k|i}\sum_{l|j}[gcd(k,l)=1]
d ( i j ) = k ∣ i ∑ l ∣ j ∑ [ g c d ( k , l ) = 1 ] 证明:
设
q
q
q 为
i
j
ij
i j 的一个因子(可以是质因子),设
q
=
s
×
p
t
q=s\times p^t
q = s × p t (
p
p
p 为质数)
设
i
=
i
′
×
p
a
,
j
=
j
′
×
p
b
i=i'\times p^a,j=j'\times p^b
i = i ′ × p a , j = j ′ × p b ,由于
q
q
q 为
i
j
ij
i j 的一个因子,必有
t
≤
a
+
b
t≤a+b
t ≤ a + b
如果
t
≤
a
t≤a
t ≤ a ,就取
k
=
m
×
p
t
k=m\times p^t
k = m × p t 以保证
g
c
d
(
k
,
l
)
=
1
gcd(k,l)=1
g c d ( k , l ) = 1
否则取
k
k
k 满足
g
c
d
(
k
,
p
)
=
1
gcd(k,p)=1
g c d ( k , p ) = 1 ,
t
=
n
×
p
t
−
a
t=n\times p^{t-a}
t = n × p t − a ,此时
g
c
d
(
k
,
l
)
=
1
gcd(k,l)=1
g c d ( k , l ) = 1 。
这样可以保证对于
i
j
ij
i j 的每一个约数都存在唯一一种分解方案,该性质成立。