对于整数而言:
定义
数论函数
定义域为正整数,值域(陪域)为复数(一般是整数)的函数,称为数论函数。
经典的数论函数有:
欧拉函数
φ
(
x
)
=
∑
i
=
0
x
−
1
[
i
⊥
x
]
\varphi(x)=\sum_{i=0}^{x-1}[i\perp x]
φ(x)=∑i=0x−1[i⊥x]:表示[0,x-1]中与x互质的数的个数
常数函数
1
(
x
)
=
1
1(x)=1
1(x)=1
幂函数
I
d
k
(
x
)
=
x
k
Id_k(x)=x^k
Idk(x)=xk,当k=1时为恒等函数
i
d
(
x
)
=
x
id(x)=x
id(x)=x,当k=0时为常数函数
1
1
1
整除函数
σ
k
(
x
)
=
∑
d
∣
x
d
k
\sigma_k(x)=\sum_{d|x}d^k
σk(x)=∑d∣xdk,当k=1时为约数和函数,当k=0时为约数个数函数
d
d
d
莫比乌斯函数
μ
(
x
)
=
{
1
(
x
=
1
)
0
(
x
含有相同质因子
)
(
−
1
)
s
(
s
为
x
的不同质因子的个数
)
\mu (x)=\left\{\begin{matrix} 1\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(x=1)\\ 0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(x含有相同质因子)\\ (-1)^s(s为x的不同质因子的个数) \end{matrix}\right.
μ(x)=⎩
⎨
⎧1(x=1)0(x含有相同质因子)(−1)s(s为x的不同质因子的个数)
积性函数
若对于x⊥y,有
f
(
x
)
f
(
y
)
=
f
(
x
y
)
f(x)f(y)=f(xy)
f(x)f(y)=f(xy),则称f为积性函数。
若对于所有x,y有
f
(
x
)
f
(
y
)
=
f
(
x
y
)
f(x)f(y)=f(xy)
f(x)f(y)=f(xy),则称f为完全积性函数。
上述数论函数都是积性函数,暂时不给出证明,具体用到的时候再一一证明。
若有
f
f
f是非恒等于0的积性函数,有
f
(
1
)
=
1
f(1)=1
f(1)=1。
这是因为由于
∀
x
,
1
⊥
x
\forall x,1 \perp x
∀x,1⊥x只有这样才能保证
f
(
x
)
=
f
(
x
)
⋅
f
(
1
)
f(x)=f(x)\cdot f(1)
f(x)=f(x)⋅f(1)。
欧拉函数
φ ( 1 ) = 1 \varphi(1)=1 φ(1)=1
欧拉函数的积性证明起来比较麻烦,主要的方法有:
- 群论
- 狄利克雷卷积
- 中国剩余定理
- 同余方程转不定方程
- 容斥原理
前四种门槛都比较高,就不再说了,这里只贴一下容斥原理的证明过程好了:
引用
QED.
此时,利用容斥原理,其实已经求出了欧拉函数的计算公式,但是底下我们再利用积性作为性质来证明一下欧拉函数的公式。
欧拉函数的性质
定义 P \mathbb{P} P表示质数集合。
性质1
∀ x ⊥ y : φ ( x ) ⋅ φ ( y ) = φ ( x ⋅ y ) \forall x \perp y:\varphi(x)\cdot\varphi(y)=\varphi(x\cdot y) ∀x⊥y:φ(x)⋅φ(y)=φ(x⋅y)
欧拉函数是积性函数。
性质2
∀ p ∈ P : φ ( p ) = p − 1 \forall p \in \mathbb{P}:\varphi(p)=p-1 ∀p∈P:φ(p)=p−1
性质3
φ ( p k ) = ( p − 1 ) p k − 1 \varphi(p^k)=(p-1)p^{k-1} φ(pk)=(p−1)pk−1
证明:
对于
p
k
p^k
pk,在
[
0
,
p
k
−
1
]
[0,p^k-1]
[0,pk−1]范围内显然只有p的倍数与它不互质。
那么在此范围内,p的倍数一共有
{
0
⋅
p
,
1
⋅
p
,
2
⋅
p
,
3
⋅
p
,
.
.
.
,
(
p
k
−
1
⋅
p
)
}
\{0\cdot p,1\cdot p,2\cdot p,3\cdot p,...,(p^{k-1}\cdot p)\}
{0⋅p,1⋅p,2⋅p,3⋅p,...,(pk−1⋅p)}这些数(不包括
(
p
k
−
1
⋅
p
)
(p^{k-1}\cdot p)
(pk−1⋅p)),也就是总共
p
k
−
1
p^{k-1}
pk−1个数。
那么与
p
k
p^k
pk互质的数的个数就是
φ
(
p
k
)
=
p
k
−
p
k
−
1
=
p
k
−
1
(
p
−
1
)
\varphi(p^k)=p^k-p^{k-1}=p^{k-1}(p-1)
φ(pk)=pk−pk−1=pk−1(p−1)
QED.
性质4
φ ( n ) = n ∏ i = 1 s ( 1 − 1 p i ) \varphi(n)=n\prod_{i=1}^s\left(1-\frac 1 {p_i} \right) φ(n)=n∏i=1s(1−pi1)
欧拉函数计算公式。
证明:
p
i
p_i
pi表示
n
n
n的不同质因子,
s
s
s表示质因子个数
推导积性函数的性质时,很容易想到把一个数分解成它的标准分解式,把函数拆开:
φ
(
n
)
=
φ
(
∏
i
=
1
s
p
i
a
i
)
\varphi(n)=\varphi\left(\prod_{i=1}^sp_i^{a_i}\right)
φ(n)=φ(∏i=1spiai)
注意到各个素因子之间肯定是互质的,因此可以拆开:
=
∏
i
=
1
s
φ
(
p
i
a
i
)
=\prod_{i=1}^s\varphi(p_i^{a_i})
=∏i=1sφ(piai)
直接套公式:
=
∏
i
=
1
s
(
p
i
−
1
)
p
i
a
i
−
1
=\prod_{i=1}^s(p_i-1)p_i^{a_i-1}
=∏i=1s(pi−1)piai−1
=
∏
i
=
1
s
(
1
−
1
p
i
)
p
i
a
i
=\prod_{i=1}^s\left(1-\frac 1 {p_i}\right)p_i^{a_i}
=∏i=1s(1−pi1)piai
其实
∏
i
=
1
s
p
i
a
i
\prod_{i=1}^sp_i^{a_i}
∏i=1spiai就是
n
n
n,可以提出来:
=
n
∏
i
=
1
s
(
1
−
1
p
i
)
=n\prod_{i=1}^s\left(1-\frac 1 {p_i}\right)
=n∏i=1s(1−pi1)
QED.
最后我们发现,
a
i
a_i
ai没了,这表明,欧拉函数只和质因子有关,和含有同一个质因子的次数无关。这也很显然,只要含有此质因子一次,
n
n
n就与此质因子所有的倍数不互质了。
推论1:
m ∣ n : φ ( m ) ∣ φ ( n ) m|n:\varphi(m)|\varphi(n) m∣n:φ(m)∣φ(n)
目前没看到什么用
证明就是把公式拆开:
φ
(
n
)
=
n
m
m
∏
(
1
−
1
只属于
n
不属于
m
的质因子
)
⋅
∏
(
1
−
1
m
的质因子
)
\varphi(n)=\frac n m m \prod\left(1-\frac 1 {只属于n不属于m的质因子}\right)\cdot\prod\left(1-\frac 1 {m的质因子}\right)
φ(n)=mnm∏(1−只属于n不属于m的质因子1)⋅∏(1−m的质因子1)
=
n
m
∏
(
1
−
1
只属于
n
不属于
m
的质因子
)
⋅
m
∏
(
1
−
1
m
的质因子
)
=\frac n m \prod\left(1-\frac 1 {只属于n不属于m的质因子}\right)\cdot m\prod\left(1-\frac 1 {m的质因子}\right)
=mn∏(1−只属于n不属于m的质因子1)⋅m∏(1−m的质因子1)
=
n
m
∏
(
1
−
1
只属于
n
不属于
m
的质因子
)
φ
(
m
)
=\frac n m \prod\left(1-\frac 1 {只属于n不属于m的质因子}\right)\varphi(m)
=mn∏(1−只属于n不属于m的质因子1)φ(m)
QED.
推论2:
p ∈ P : φ ( p ⋅ x ) = { p ∣ x : p ⋅ φ ( x ) e l s e : φ ( p ) ⋅ φ ( x ) p \in \mathbb{P}: \varphi(p\cdot x)= \left\{\begin{matrix} p|x:p\cdot \varphi(x)\;\;\;\;\\ else:\varphi(p)\cdot\varphi(x) \end{matrix}\right. p∈P:φ(p⋅x)={p∣x:p⋅φ(x)else:φ(p)⋅φ(x)
可以用来筛欧拉函数。
证明也是把公式拆开。
推论3
gcd ( x , y ) = d : φ ( x y ) = φ ( x ) φ ( y ) d φ ( d ) \gcd(x,y)=d:\varphi(xy)=\frac{\varphi(x)\varphi(y)d}{\varphi(d)} gcd(x,y)=d:φ(xy)=φ(d)φ(x)φ(y)d
这个过程实际上是积性函数性质的推广。
所以证明也是带进公式:
φ
(
x
y
)
=
x
y
∏
(
1
−
1
x
y
的质因子
)
\varphi(xy)=xy\prod\left(1-\frac 1{xy的质因子}\right)
φ(xy)=xy∏(1−xy的质因子1)
= x y ( ∏ ( 1 − 1 x 的质因子 ) ∏ ( 1 − 1 y 的质因子 ) ∏ ( 1 − 1 x y 的公共质因子 ) ) =xy\left(\frac{\prod\left(1-\frac{1}{x的质因子}\right)\prod\left(1-\frac{1}{y的质因子}\right)}{\prod\left(1-\frac{1}{xy的公共质因子}\right)}\right) =xy(∏(1−xy的公共质因子1)∏(1−x的质因子1)∏(1−y的质因子1))
拆一下贡献,把
x
x
x贡献给左边的prod式,y贡献到右边:
=
x
∏
(
1
−
1
x
的质因子
)
y
∏
(
1
−
1
y
的质因子
)
∏
(
1
−
1
x
y
的公共质因子
)
=\frac{x\prod\left(1-\frac{1}{x的质因子}\right)y\prod\left(1-\frac{1}{y的质因子}\right)}{\prod\left(1-\frac{1}{xy的公共质因子}\right)}
=∏(1−xy的公共质因子1)x∏(1−x的质因子1)y∏(1−y的质因子1)
上下乘一个
d
d
d:
=
x
∏
(
1
−
1
x
的质因子
)
y
∏
(
1
−
1
y
的质因子
)
⋅
d
d
⋅
∏
(
1
−
1
x
y
的公共质因子
)
=\frac{x\prod\left(1-\frac{1}{x的质因子}\right)y\prod\left(1-\frac{1}{y的质因子}\right)\cdot d}{d\cdot\prod\left(1-\frac{1}{xy的公共质因子}\right)}
=d⋅∏(1−xy的公共质因子1)x∏(1−x的质因子1)y∏(1−y的质因子1)⋅d
=
φ
(
x
)
φ
(
y
)
d
φ
(
d
)
=\frac{\varphi(x)\varphi(y)d}{\varphi(d)}
=φ(d)φ(x)φ(y)d
QED.
性质5
事实上,欧拉函数还有如下重要性质:
n = ∑ d ∣ n φ ( d ) n=\underset{d|n}{\sum}\varphi(d) n=d∣n∑φ(d)
这个性质证明起来比较麻烦,主要有这么几种方法:
这里只说第1,3种证明方法,其他的方法遇到的时候再说好了。
比较形式的朴素证明:
首先有:
X
n
=
Z
∩
[
1
,
n
]
\mathbb{X}_n=\mathbb{Z}\cap[1,n]
Xn=Z∩[1,n],也就是
X
n
=
{
1
,
2
,
.
.
.
,
n
}
\mathbb{X}_n=\{1,2,...,n\}
Xn={1,2,...,n}
其次定义
A
d
=
{
x
∈
X
n
,
gcd
(
x
,
n
)
=
d
}
\mathbb{A}_d=\{x \in \mathbb{X}_n,\gcd(x,n)=d\}
Ad={x∈Xn,gcd(x,n)=d},也就是区间[1,n]中gcd=d的所有数
注意到:
d
∤
n
:
A
d
=
∅
d∤n:\mathbb{A}_d=\varnothing
d∤n:Ad=∅
因而有:
⋃
d
∣
n
A
d
=
⋃
d
=
1
n
A
d
=
X
n
\underset{d|n}\bigcup \mathbb{A}_d=\overset{n}{\underset{d=1}\bigcup }\mathbb{A}_d=\mathbb{X}_n
d∣n⋃Ad=d=1⋃nAd=Xn
注意到: d ∣ n : A d = { x ∈ X n , gcd ( x , n ) = d } = { x ∈ X n , gcd ( x d , n d ) = 1 } = { x ∈ X n d , gcd ( x , n d ) = 1 } d|n:\mathbb{A}_d=\{x \in \mathbb{X}_n,\gcd(x,n)=d\}=\{x \in \mathbb{X}_n,\gcd( \frac x d ,\frac n d )=1\}=\{x \in \mathbb{X}_{\frac n d },\gcd( x, \frac n d )=1\} d∣n:Ad={x∈Xn,gcd(x,n)=d}={x∈Xn,gcd(dx,dn)=1}={x∈Xdn,gcd(x,dn)=1},此时 ∣ A d ∣ = φ ( n d ) |A_d|=\varphi(\frac n d) ∣Ad∣=φ(dn)
因此有: n = ∣ X n ∣ = ∣ ⋃ d ∣ n A d ∣ n=\left|\mathbb{X}_n\right|=\left|\underset{d|n}\bigcup \mathbb{A}_d\right| n=∣Xn∣= d∣n⋃Ad
如何计算
A
d
\mathbb{A}_d
Ad的并集的大小呢?事实上,任意
A
d
\mathbb{A}_d
Ad之间交集都为空,这很显然,所以只需要计算每个集合的大小,再求和就好了。
=
∑
d
∣
n
∣
A
d
∣
=
∑
d
∣
n
φ
(
n
d
)
=
∑
d
∣
n
φ
(
d
)
=\underset{d|n}\sum \left|\mathbb{A}_d\right|=\underset{d|n}\sum\varphi(\frac n d)=\underset{d|n}\sum\varphi(d)
=d∣n∑∣Ad∣=d∣n∑φ(dn)=d∣n∑φ(d)
QED.
朴素的证明:
以
n
=
12
n=12
n=12为例,我们先考虑以12为分母的所有真分数:
0
12
,
1
12
,
2
12
,
3
12
,
4
12
,
5
12
,
6
12
,
7
12
,
8
12
,
9
12
,
10
12
,
11
12
,
11
12
\frac 0 {12},\frac 1 {12},\frac 2 {12},\frac 3 {12},\frac 4 {12},\frac 5 {12},\frac 6 {12},\frac 7 {12},\frac 8 {12},\frac 9 {12},\frac {10} {12},\frac {11} {12},\frac {11} {12}
120,121,122,123,124,125,126,127,128,129,1210,1211,1211
约分,整理一下:
0
1
,
1
2
,
1
3
,
2
3
,
1
4
,
3
4
,
1
6
,
5
6
,
1
12
,
5
12
,
7
12
,
11
12
\frac 0 1,\frac 1 2,\frac 1 3,\frac 2 3,\frac 1 4,\frac 3 4,\frac 1 6,\frac 5 6,\frac 1 {12},\frac 5 {12},\frac 7 {12},\frac {11} {12}
10,21,31,32,41,43,61,65,121,125,127,1211
首先,分母都是
n
n
n的约数,这很显然。
其次,分母为
d
d
d的分数出现次数为
φ
(
d
)
\varphi(d)
φ(d)。这怎么证明呢?
假设分母为
d
d
d的分数共有
X
d
X_d
Xd个。
首先
X
d
≤
φ
(
d
)
X_d\leq\varphi(d)
Xd≤φ(d)。
其次,不存在
x
⊥
d
:
x
d
不存在
x\perp d:\frac x d 不存在
x⊥d:dx不存在。因为
x
d
\frac x d
dx对应的
x
⋅
n
d
n
\frac {x\cdot \frac n d} n
nx⋅dn一定存在,且只有一种约分的方法(一个分数只有一种最简形式)。因此:
φ
(
d
)
≤
X
d
\varphi(d)\leq X_d
φ(d)≤Xd
因此 X d = φ ( d ) X_d=\varphi(d) Xd=φ(d)
而我们知道,把
n
n
n为分母的真分数化简,最终一定得到
n
n
n个不相同的既约真分数:
n
=
∑
d
∣
n
X
d
=
∑
d
∣
n
φ
(
d
)
n=\underset{d|n}\sum X_d=\underset{d|n}\sum \varphi(d)
n=d∣n∑Xd=d∣n∑φ(d)
很明显不可能得到小于
n
n
n个既约真分数吧?(好像不太明显)
假设有两个既约真分数相等,设为
a
b
=
c
d
(
a
⊥
b
,
c
⊥
d
,
a
≠
c
,
b
≠
d
)
\frac a b =\frac c d(a\perp b,c\perp d,a\neq c,b\neq d)
ba=dc(a⊥b,c⊥d,a=c,b=d):
即:
a
d
=
b
c
ad=bc
ad=bc
就有:
a
d
c
=
b
\frac {ad} c =b
cad=b和
d
=
b
c
a
d=\frac {bc} a
d=abc
由于:
c
⊥
d
c\perp d\;\;
c⊥d和
a
⊥
b
a\perp b
a⊥b
所以:
c
∣
a
c|a
c∣a且
a
∣
c
a|c
a∣c,即
a
=
c
a=c
a=c,矛盾。
QED.
性质6
小于x且与x互质的数的和: x φ ( x ) 2 x\frac {\varphi(x)} 2 x2φ(x)
妙极了,因为O( n \sqrt n n)用试除法分解质因子的同时可以得到一个数的欧拉函数值,所以可以O( n \sqrt n n)求这个和。(还可以 O ( n 4 ) O\left(\sqrt[4]n\right) O(4n)求)
证明:
…写到这里突然不会证了。
我刚刚明明会的…
好了,我证出来了。但是要用莫比乌斯反演和狄利克雷卷积。
不放到莫比乌斯反演的文章里是因为,莫比乌斯反演的文章太长了,用浏览器编辑起来非常的卡。
要求:
∑
i
=
1
n
−
1
[
i
⊥
n
]
i
\overset{n-1}{\underset{i=1}\sum}[i\perp n]i
i=1∑n−1[i⊥n]i
直接对这个式子做莫比乌斯反演:
=
∑
d
∣
n
μ
(
d
)
∑
i
=
1
n
−
1
[
d
∣
i
]
i
=\underset{d|n}\sum \mu(d)\overset{n-1}{\underset{i=1}\sum}[d|i]i
=d∣n∑μ(d)i=1∑n−1[d∣i]i
=
∑
d
∣
n
μ
(
d
)
d
∑
i
=
1
⌊
n
−
1
d
⌋
i
=\underset{d|n}\sum \mu(d)d\overset{\left\lfloor\frac {n-1}d\right\rfloor}{\underset{i=1}\sum}i
=d∣n∑μ(d)di=1∑⌊dn−1⌋i
注意到 ⌊ n − 1 d ⌋ = n d − 1 \left\lfloor\frac {n-1}d\right\rfloor=\frac nd -1 ⌊dn−1⌋=dn−1,这是因为 d ∣ n d \mid n d∣n,因此 n d \frac nd dn恰好取整,因而 ⌊ n − 1 d ⌋ \left\lfloor\frac {n-1}d\right\rfloor ⌊dn−1⌋应等于 n d \frac nd dn的取整值再 − 1 -1 −1。
= ∑ d ∣ n μ ( d ) d ∑ i = 1 n d − 1 i =\underset{d|n}\sum \mu(d)d\overset{\frac nd -1}{\underset{i=1}\sum}i =d∣n∑μ(d)di=1∑dn−1i
做等差数列求和:
=
∑
d
∣
n
μ
(
d
)
d
(
n
d
)
(
n
d
+
1
)
2
=\underset{d|n}\sum \mu(d)d\frac{\left(\frac nd\right)\left(\frac nd+1\right)}{2}
=d∣n∑μ(d)d2(dn)(dn+1)
=
1
2
∑
d
∣
n
μ
(
d
)
d
(
n
d
)
(
n
d
+
1
)
=\frac{1}{2}\underset{d|n}\sum \mu(d)d{\left(\frac nd\right)\left(\frac nd+1\right)}
=21d∣n∑μ(d)d(dn)(dn+1)
=
n
2
∑
d
∣
n
μ
(
d
)
n
d
+
1
2
∑
d
∣
n
μ
(
d
)
d
⋅
n
d
=\frac{n}{2}\underset{d|n}\sum \mu(d)\frac nd+\frac{1}{2}\underset{d|n}\sum \mu(d)d\cdot \frac nd
=2nd∣n∑μ(d)dn+21d∣n∑μ(d)d⋅dn
=
n
2
∑
d
∣
n
μ
(
d
)
n
d
+
n
2
∑
d
∣
n
μ
(
d
)
=\frac{n}{2}\underset{d|n}\sum \mu(d)\frac nd+\frac{n}{2}\underset{d|n}\sum \mu(d)
=2nd∣n∑μ(d)dn+2nd∣n∑μ(d)
=
n
2
∑
d
∣
n
μ
(
d
)
n
d
+
n
2
[
n
=
1
]
=\frac{n}{2}\underset{d|n}\sum \mu(d)\frac nd+\frac n2[n=1]
=2nd∣n∑μ(d)dn+2n[n=1]
设 n > 1 n>1 n>1:
= n 2 ∑ d ∣ n μ ( d ) n d =\frac{n}{2}\underset{d|n}\sum \mu(d)\frac nd =2nd∣n∑μ(d)dn
这个和式就是狄利克雷卷积:
=
n
2
φ
(
n
)
=\frac n2\varphi(n)
=2nφ(n)
QED.
当然还有一种证明方法,考虑到gcd算法,设 x ⊥ n x\perp n x⊥n,则 g c d ( n , x ) = g c d ( n , n − x ) = 1 gcd(n,x)=gcd(n,n-x)=1 gcd(n,x)=gcd(n,n−x)=1,说明 n − x ⊥ n n-x\perp n n−x⊥n,这表明,与 n n n互质的数成对出现,且每一对的和都为 n n n。我们知道与 n n n互质的数共有 φ ( n ) \varphi(n) φ(n)个,也就是 φ ( n ) 2 \frac{\varphi(n)}2 2φ(n)对。求得答案相同。
关于欧拉函数的其他一些东西
与欧拉函数有关的练习题
P2158 [SDOI2008] 仪仗队
P2568 GCD
P2398 GCD SUM
杂项
事实上, φ ( x ) = x − 1 \varphi(x)=x-1 φ(x)=x−1表明 x ∈ P x\in\mathbb{P} x∈P,这或许有用,但大概率没用,但是还是有点用。
后记
于是皆大欢喜。