题意
求 a , b , c ∈ [ l , r ] , a < b < c , a ∣ b , b ∣ c a,b,c\in[l,r],a< b< c,a|b,b|c a,b,c∈[l,r],a<b<c,a∣b,b∣c的三元组 ( a , b , c ) (a,b,c) (a,b,c)个数
正解
先假设
a
≤
b
≤
c
a\le b\le c
a≤b≤c
枚举
a
a
a,设
b
′
=
b
a
,
c
′
=
c
a
b'=\frac{b}{a},c'=\frac{c}{a}
b′=ab,c′=ac,则要求
b
′
,
c
′
≤
⌊
r
a
⌋
b',c'\le \lfloor\frac{r}{a}\rfloor
b′,c′≤⌊ar⌋且
b
′
∣
c
′
b'|c'
b′∣c′的数量
这个值就是
∑
i
=
1
r
a
d
(
i
)
\sum_{i=1}^{\frac{r}{a}}d(i)
∑i=1ard(i),其中
d
(
x
)
d(x)
d(x)为
x
x
x的约数个数
a
n
s
=
∑
i
=
l
r
∑
j
=
1
r
i
d
(
j
)
ans=\sum_{i=l}^r\sum_{j=1}^{\frac{r}{i}}d(j)
ans=i=l∑rj=1∑ird(j)
需要求
d
(
j
)
d(j)
d(j)的前缀和,使用杜教筛可以~~(不会)~
推柿子:
∑
i
=
1
u
d
(
i
)
=
∑
i
=
1
u
⌊
u
i
⌋
\sum_{i=1}^ud(i)=\sum_{i=1}^u\lfloor\frac{u}{i}\rfloor
i=1∑ud(i)=i=1∑u⌊iu⌋
线筛+前缀和
容斥掉 a = b , b = c , a = b = c a=b,b=c, a=b=c a=b,b=c,a=b=c的情况: ∑ i = l r ⌊ r i ⌋ − ( r − l + 1 ) \sum_{i=l}^r\lfloor\frac{r}{i}\rfloor-(r-l+1) ∑i=lr⌊ir⌋−(r−l+1)