数论记号
- a ∣ b a|b a∣b 记作a整除b(b%a==0)
- [ a = = 1 ] [a==1] [a==1] 表示当表达式成立时值为真
- ϕ : \phi: ϕ:欧拉函数
- μ : \mu: μ:莫比乌斯函数
欧拉函数
算数基本定理
N = p 1 c 1 p 2 c 2 . . . p m c m p ∈ p r i m e N = p_1^{c_1}p_2^{c_2}...p_m^{c_m}\space p\in prime N=p1c1p2c2...pmcm p∈prime
欧拉函数
ϕ
(
n
)
\phi(n)
ϕ(n)表示的是
[
1
,
n
]
[1,n]
[1,n]之间与n
互质的数的数量
即
ϕ
(
n
)
=
∑
i
n
[
g
c
d
(
n
,
i
)
=
=
1
]
\phi(n) = \sum_i^n[gcd(n,i)==1]
ϕ(n)=i∑n[gcd(n,i)==1]
对于素数 P
,
ϕ
(
P
)
=
P
−
1
\phi(P)=P-1
ϕ(P)=P−1.
若合数 C = P 1 ∗ P 2 C=P1 * P2 C=P1∗P2.
对于素数P1
,p1的倍数有P1,2P1,3P1,..(C/P1)*P1
共计C/P1
个,同理,1~C
中P2的倍数有C/P2
个.
如果我们把这C/P1+C/P2
数去掉,那么P1*P2的倍数被排除了两次,需要再加回来一次.
因此贡献是 ϕ ( C ) = C − C P 1 − C P 2 + C P 1 ∗ P 2 = C ∗ ( 1 − 1 P 1 − 1 P 2 + 1 P 1 ∗ P 2 ) = C ∗ ( 1 − 1 P 1 ) ∗ ( 1 − 1 P 2 ) \phi(C)=C-\frac{C}{P1}-\frac{C}{P2}+\frac{C}{P1*P2}=C*(1-\frac{1}{P1}-\frac{1}{P2}+\frac{1}{P1*P2})=C*(1-\frac{1}{P1})*(1-\frac{1}{P2}) ϕ(C)=C−P1C−P2C+P1∗P2C=C∗(1−P11−P21+P1∗P21)=C∗(1−P11)∗(1−P21).
当 C = P 1 ∗ P 2 ∗ P 3 C=P1*P2*P3 C=P1∗P2∗P3时,
ϕ ( C ) = C ∗ ( 1 − 1 P 1 − 1 P 2 − 1 P 3 + 1 P 1 ∗ P 2 + 1 P 1 ∗ P 3 + 1 P 2 ∗ P 3 − 1 P 1 ∗ P 2 ∗ P 3 ) = C ∗ ( 1 − 1 P 1 ) ∗ ( 1 − 1 P 2 ) ∗ ( 1 − 1 P 3 ) \phi(C)=C*(1-\frac{1}{P1}-\frac{1}{P2}-\frac{1}{P3}+\frac{1}{P1*P2}+\frac{1}{P1*P3}+\frac{1}{P2*P3}-\frac{1}{P1*P2*P3})=C*(1-\frac{1}{P1})*(1-\frac{1}{P2})*(1-\frac{1}{P3}) ϕ(C)=C∗(1−P11−P21−P31+P1∗P21+P1∗P31+P2∗P31−P1∗P2∗P31)=C∗(1−P11)∗(1−P21)∗(1−P31).
推广后便是
C
=
p
1
c
1
p
2
c
2
.
.
.
p
m
c
m
ϕ
(
C
)
=
C
∗
∏
质
数
p
∣
C
(
1
−
1
p
)
C=p_1^{c_1}p_2^{c_2}...p_m^{c_m}\\ \phi(C)=C*\prod_{质数p|C}(1-\frac{1}{p})
C=p1c1p2c2...pmcmϕ(C)=C∗质数p∣C∏(1−p1)
1
−
1
p
=
p
−
1
p
1-\frac{1}{p} = \frac{p-1}{p}
1−p1=pp−1
令
T
=
P
1
c
1
−
1
P
2
c
2
−
1
.
.
.
P
m
c
m
−
1
,
F
=
P
1
P
2
.
.
.
P
m
T=P_1^{c_1-1}P_2^{c_2-1}...P_m^{c_m-1},F=P_1P_2...P_m
T=P1c1−1P2c2−1...Pmcm−1,F=P1P2...Pm.
ϕ
(
C
)
=
T
∗
F
∗
∏
质
数
p
∣
C
(
1
−
1
p
)
ϕ
(
C
)
=
T
∗
∏
质
数
p
∣
C
(
p
−
1
)
\phi(C)=T*F*\prod_{质数p|C}(1-\frac{1}{p})\\ \phi(C)=T*\prod_{质数p|C}(p-1)
ϕ(C)=T∗F∗质数p∣C∏(1−p1)ϕ(C)=T∗质数p∣C∏(p−1)
对于
C
2
=
C
1
∗
P
C2 = C1*P
C2=C1∗P.
若C1
中早就存在质数P
则,新增P后对C2
的影响只是
T
T
T,而不会影响
F
F
F,因为
F
F
F,只是出现质数种类的集合
ϕ
(
C
2
)
=
ϕ
(
C
1
)
∗
P
\phi(C2)=\phi(C1)*P
ϕ(C2)=ϕ(C1)∗P
否则,就会影响到
F
F
F,但是却不会影响到
T
T
T,因为其统计的是质数出现次数减一的的贡献,出现一次又减去就相当于不减去.
ϕ
(
C
2
)
=
ϕ
(
C
1
)
∗
(
P
−
1
)
\phi(C2)=\phi(C1)*(P-1)
ϕ(C2)=ϕ(C1)∗(P−1)
const int maxn = 1e6+10;
int pri[maxn/8],tot,phi[maxn];
bool vis[maxn];
void init()
{
phi[1]=1;
for(int i=2;i<maxn;++i){
if(!vis[i])pri[++tot]=i,phi[i]=i-1;
//质数的欧拉函数是质数减一
for(int j=1;j<=tot&&i*pri[j]<maxn;++j){
vis[i*pri[j]]=1;
if(i%pri[j])phi[i*pri[j]]=phi[i]*(pri[j]-1)//新增质数时*(j-1)
else {
phi[i*pri[j]]=phi[i]*pri[j]//不是新增直接乘
break;
}
}
}
}
例题
令 f ( x ) = ∑ i x ϕ ( i ) 求 ∑ d n ϕ ( d ) ∗ f ( n / d ) 令f(x) = \sum_i^x\phi(i)\\ 求\sum_d^n\phi(d)*f(n/d) 令f(x)=i∑xϕ(i)求d∑nϕ(d)∗f(n/d)
分块的要点:被除的数为不变值,应计算不被除的数_的前缀和
#include<bits/stdc++.h>
typedef long long ll;
const int maxn = 1e6+10;
int pri[maxn/8],tot,phi[maxn];
ll sum[maxn];
bool vis[maxn];
void init()
{
phi[1]=1;
for(int i=2;i<maxn;++i){
if(!vis[i])pri[++tot]=i,phi[i]=i-1;
//质数的欧拉函数是质数减一
for(int j=1;j<=tot&&i*pri[j]<maxn;++j){
vis[i*pri[j]]=1;
if(i%pri[j])phi[i*pri[j]]=phi[i]*(pri[j]-1)//新增质数时*(j-1)
else {
phi[i*pri[j]]=phi[i]*pri[j]//不是新增直接乘
break;
}
}
}
for(int i=1;i<=n;i++)sum[i]=sum[i-1]+phi[i];
}
ll solve(ll n)
{
ll ans=0;
for(ll l=1,r;l<=n;l=r+1){
r=n/(n/l);
ans += (sum[r]-sum[l-1])*sum[n/l];
}
return ans;
}
int main(){
int n;
init();
while(cin>>n)
cout<<solve(n)<<endl;
return 0;
}
积性函数
定义一
如果当a,b
互质时,有
f
(
a
b
)
=
f
(
a
)
∗
f
(
b
)
f(ab)=f(a)*f(b)
f(ab)=f(a)∗f(b),那么称
f
(
x
)
f(x)
f(x)是积性函数
如果不当a,b
互质时,仍有
f
(
a
b
)
=
f
(
a
)
∗
f
(
b
)
f(ab)=f(a)*f(b)
f(ab)=f(a)∗f(b),那么称
f
(
x
)
f(x)
f(x)是完全积性函数
定义二
若 f f f是积性函数,在算数基本定理中 n = ∏ 1 m p i c i n = \prod_1^m p_i^{ci} n=∏1mpici,则 f ( n ) = ∏ i m f ( p i c i ) f(n) = \prod_i^mf(p_i^{c_i}) f(n)=∏imf(pici).
积性函数性质1
若 F ( X ) = ∑ d ∣ x G ( d ) ∗ H ( x / d ) [ g c d ( d , x / d ) = = 1 ] F(X)=\sum_{d|x} G(d)*H(x/d)\space [gcd(d,x/d)==1] F(X)=∑d∣xG(d)∗H(x/d) [gcd(d,x/d)==1].若函数$ G,H 都 是 积 性 函 数 , 则 都是积性函数,则 都是积性函数,则F$也是积性函数
ϕ ( x ) \phi(x) ϕ(x)函数积性证明:
只要证明 f ( n ) = ∏ i m f ( p i c i ) f(n) = \prod_i^mf(p_i^{c_i}) f(n)=∏imf(pici).就可以证明 ϕ ( x ) \phi(x) ϕ(x)是积性函数
根据欧拉函数的求法,对于任意一个数C
,对于C2=C1*P
,若P|C1
,则
ϕ
(
C
2
)
=
ϕ
(
C
1
)
∗
P
\phi(C2)=\phi(C1)*P
ϕ(C2)=ϕ(C1)∗P,否则
ϕ
(
C
2
)
=
ϕ
(
C
1
)
∗
(
P
−
1
)
\phi(C2)=\phi(C1)*(P-1)
ϕ(C2)=ϕ(C1)∗(P−1).
因此,对于 C = p c i C=p^{c_i} C=pci, ϕ ( C ) = ( 1 − 1 p ) ∗ p c i \phi(C)=(1-\frac{1}{p})*p^{c_i} ϕ(C)=(1−p1)∗pci.
那么对于
C
=
p
1
c
1
p
2
c
2
.
.
.
p
m
c
m
ϕ
(
C
)
=
C
∗
∏
质
数
p
∣
C
(
1
−
1
p
)
C=p_1^{c_1}p_2^{c_2}...p_m^{c_m}\\ \phi(C)=C*\prod_{质数p|C}(1-\frac{1}{p})
C=p1c1p2c2...pmcmϕ(C)=C∗质数p∣C∏(1−p1)
那么显然
ϕ
\phi
ϕ是积性函数
ϕ ( x ) \phi(x) ϕ(x)函数性质1
I d = ϕ ∗ I = ∑ d ∣ x ϕ ( d ) ∗ I ( x / d ) Id = \phi * I=\sum_{d|x}\phi(d)*I(x/d) Id=ϕ∗I=d∣x∑ϕ(d)∗I(x/d)
其中
I
(
x
)
=
1
I(x)=1
I(x)=1,记作不变函数(并且是积性函数),并且根据积性函数性质
I
d
Id
Id也是积性函数,那么有
I
d
(
N
)
=
∏
i
m
I
d
(
p
i
c
i
)
Id(N)=\prod_i^mId(p_i^{c_i})
Id(N)=i∏mId(pici)
同时,对于
C
=
p
c
i
C=p^{c_i}
C=pci有
I
d
(
C
)
=
∑
d
∣
C
ϕ
(
d
)
=
1
+
(
p
−
1
)
+
(
p
−
1
)
∗
p
+
(
p
−
1
)
∗
p
2
+
.
.
.
+
(
p
−
1
)
∗
p
c
i
=
p
c
i
=
C
Id(C)=\sum_{d|C}\phi(d)=1+(p-1)+(p-1)*p+(p-1)*p^2+...+(p-1)*p^{c_i}=p^{c_i}=C
Id(C)=d∣C∑ϕ(d)=1+(p−1)+(p−1)∗p+(p−1)∗p2+...+(p−1)∗pci=pci=C
因此
I
d
(
N
)
=
∏
i
m
p
i
c
i
=
N
→
I
d
(
N
)
=
N
Id(N)=\prod_i^mp_i^{c_i} = N\space \rightarrow \space Id(N) = N
Id(N)=i∏mpici=N → Id(N)=N
实际上这
I
d
(
x
)
=
x
Id(x)=x
Id(x)=x就是自然函数,并且证明了
∑
d
∣
x
ϕ
(
d
)
=
x
\sum_{d|x}\phi(d)=x
∑d∣xϕ(d)=x.
性质2
∀ n > 1 , 1 n 中 与 n 互 质 的 数 的 和 为 n ∗ ϕ ( n ) / 2 \forall n>1,1~n中与n互质的数的和为n*\phi(n)/2 ∀n>1,1 n中与n互质的数的和为n∗ϕ(n)/2.
证明:
g c d ( n , i ) = = 1 , 则 g c d ( n , n − i ) = = 1 gcd(n,i)==1,则gcd(n,n-i)==1 gcd(n,i)==1,则gcd(n,n−i)==1.
使用反证法,若 g c d ( n , n − i ) = = k , 则 k ∣ n , k ∣ ( n − i ) , 那 么 k ∣ i gcd(n,n-i)==k,则k|n,k|(n-i),那么k|i gcd(n,n−i)==k,则k∣n,k∣(n−i),那么k∣i.因此成立
由此可以发现互质的数成对出现,并且和为n,共计 ϕ ( x ) / 2 \phi(x)/2 ϕ(x)/2对.所以和为 n ∗ ϕ ( n ) / 2 n*\phi(n)/2 n∗ϕ(n)/2.证毕.