Y Y 的 G C D YY的GCD YY的GCD
给 定 N , M , 求 1 ≤ x ≤ N , 1 ≤ y ≤ M 且 gcd ( x , y ) 为 质 数 的 ( x , y ) 有 多 少 对 。 给定 N, M,求 1≤x≤N,1≤y≤M 且 \gcd(x,y) 为质数的 (x, y) 有多少对。 给定N,M,求1≤x≤N,1≤y≤M且gcd(x,y)为质数的(x,y)有多少对。
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
---------------------------------
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
令N <= M
∑
p
=
2
N
∑
i
=
1
N
∑
j
=
1
M
[
gcd
(
i
,
j
)
=
p
]
先
不
考
虑
质
数
的
影
响
,
直
接
反
演
一
波
设
f
(
x
)
=
∑
i
=
1
N
∑
j
=
1
M
[
g
c
d
(
i
,
j
)
=
x
]
设
g
(
x
)
为
公
约
数
为
x
及
x
的
倍
数
的
数
量
g
(
x
)
=
∑
i
=
1
N
∑
j
=
1
M
[
x
∣
g
c
d
(
i
,
j
)
]
=
⌊
N
x
⌋
⌊
M
x
⌋
f
(
x
)
=
∑
x
∣
d
μ
(
d
x
)
g
(
d
)
=
∑
x
∣
d
μ
(
d
x
)
⌊
N
d
⌋
⌊
M
d
⌋
显
然
f
(
x
)
可
以
数
论
分
块
求
接
下
来
要
考
虑
质
数
,
实
际
上
只
需
要
在
筛
μ
的
时
侯
只
做
素
数
的
前
n
项
和
就
可
以
,
即
非
素
数
时
μ
始
终
为
0
\displaystyle\sum^N_{p=2}\displaystyle\sum^{N}_{i = 1}{\displaystyle\sum^M_{j=1}} [\gcd(i,j)=p] \\先不考虑质数的影响,直接反演一波 \\设f(x) = \sum^N_{i=1}\sum^M_{j=1}[gcd(i,j)=x] \\设g(x)为公约数为x及x的倍数的数量 \\g(x) = \sum^N_{i=1}\sum^M_{j=1}[x|gcd(i,j)] = \lfloor {\frac{N}{x}} \rfloor \lfloor {\frac{M}{x}} \rfloor \\f(x) = \sum_{x|d} \mu(\frac{d}{x})g(d) = \sum_{x|d}\mu(\frac{d}{x})\lfloor {\frac{N}{d}} \rfloor \lfloor {\frac{M}{d}} \rfloor \\显然f(x)可以数论分块求 \\接下来要考虑质数,实际上只需要在筛\mu 的时侯只做素数的前n项和就可以,即非素数时\mu始终为0
p=2∑Ni=1∑Nj=1∑M[gcd(i,j)=p]先不考虑质数的影响,直接反演一波设f(x)=i=1∑Nj=1∑M[gcd(i,j)=x]设g(x)为公约数为x及x的倍数的数量g(x)=i=1∑Nj=1∑M[x∣gcd(i,j)]=⌊xN⌋⌊xM⌋f(x)=x∣d∑μ(xd)g(d)=x∣d∑μ(xd)⌊dN⌋⌊dM⌋显然f(x)可以数论分块求接下来要考虑质数,实际上只需要在筛μ的时侯只做素数的前n项和就可以,即非素数时μ始终为0
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
---------------------------------
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
约数个数和
设
d
(
x
)
为
x
的
约
数
个
数
,
给
定
n
,
m
,
求
设 d(x) 为 x 的约数个数,给定 n,m,求
设d(x)为x的约数个数,给定n,m,求
∑
i
=
1
n
∑
j
=
1
m
d
(
i
∗
j
)
\sum^n_{i=1}\sum^m_{j=1}d(i*j)
i=1∑nj=1∑md(i∗j)
引理:
d
(
x
∗
y
)
=
∑
i
∣
x
∑
j
∣
y
[
gcd
(
i
,
j
)
=
1
]
d(x*y) = \sum_{i|x} \sum_{j|y} [\gcd(i,j) =1]
d(x∗y)=i∣x∑j∣y∑[gcd(i,j)=1]
原 式 化 为 : ∑ x = 1 n ∑ y = 1 m ∑ i ∣ x ∑ j ∣ y [ gcd ( i , j ) = 1 ] 转 换 枚 举 项 , 枚 举 i 和 j ∑ i = 1 n ∑ j = 1 m ⌊ n i ⌋ ⌊ m j ⌋ [ gcd ( i , j ) = 1 ] 套 路 1 : [ g c d ( i , j ) = 1 ] = ∑ d ∣ g c d ( i , j ) μ ( d ) ∑ i = 1 n ∑ j = 1 m ⌊ n i ⌋ ⌊ m j ⌋ ∑ d ∣ g c d ( i , j ) μ ( d ) 接 下 来 枚 举 d , 此 时 可 以 通 过 变 换 把 g c d ( i , j ) 去 掉 ∑ d = 1 n μ ( d ) ∑ i = 1 n ∑ j = 1 m [ ( d ∣ i ) a n d ( d ∣ j ) ] ⌊ n i ⌋ ⌊ m j ⌋ ∑ d = 1 n μ ( d ) ∑ i = 1 ⌊ n d ⌋ ∑ j = 1 ⌊ m d ⌋ ⌊ n i d ⌋ ⌊ m j d ⌋ 预 处 理 ∑ i = 1 n ⌊ n i ⌋ , 再 数 论 分 块 解 决 即 可 \\原式化为:\sum^n_{x=1}\sum^m_{y=1}\sum_{i|x} \sum_{j|y} [\gcd(i,j) =1] \\转换枚举项,枚举i和j \\\sum^n_{i=1}\sum^m_{j=1} \lfloor \frac{n}{i} \rfloor \lfloor \frac{m}{j} \rfloor [\gcd(i,j)=1] \\套路1:[gcd(i,j)=1] = \sum_{d|gcd(i,j)} \mu(d) \\\sum^n_{i=1}\sum^m_{j=1} \lfloor \frac{n}{i} \rfloor \lfloor \frac{m}{j} \rfloor \sum_{d|gcd(i,j)} \mu(d) \\接下来枚举d,此时可以通过变换把gcd(i,j)去掉 \\\sum^n_{d = 1}\mu(d) \sum_{i = 1}^n\sum_{j = 1}^m[(d|i) and(d|j)]\lfloor \frac{n}{i} \rfloor \lfloor \frac{m}{j} \rfloor \\\sum^n_{d = 1}\mu(d) \sum_{i = 1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j = 1}^{\lfloor \frac{m}{d} \rfloor}\lfloor \frac{n}{id} \rfloor \lfloor \frac{m}{jd} \rfloor \\预处理\sum_{i=1}^n\lfloor \frac{n}{i} \rfloor ,再数论分块解决即可 原式化为:x=1∑ny=1∑mi∣x∑j∣y∑[gcd(i,j)=1]转换枚举项,枚举i和ji=1∑nj=1∑m⌊in⌋⌊jm⌋[gcd(i,j)=1]套路1:[gcd(i,j)=1]=d∣gcd(i,j)∑μ(d)i=1∑nj=1∑m⌊in⌋⌊jm⌋d∣gcd(i,j)∑μ(d)接下来枚举d,此时可以通过变换把gcd(i,j)去掉d=1∑nμ(d)i=1∑nj=1∑m[(d∣i)and(d∣j)]⌊in⌋⌊jm⌋d=1∑nμ(d)i=1∑⌊dn⌋j=1∑⌊dm⌋⌊idn⌋⌊jdm⌋预处理i=1∑n⌊in⌋,再数论分块解决即可