Problem
求∑na=1∑nb=1[lcm(a,b)>n]
1≤n≤1010
Solution
莫比乌斯反演。
首先要求lcm(a,b)>n,那么就可以用n2减去lcm(a,b)≤n,即:
∑na=1∑nb=1[lcm(a,b)≤n]
即求满足(a,b)=1且abc≤n的三元组(a,b,c)的个数
即∑(a,b)=1[nab]
于是我们设:
f(d)=∑(a,b)=d[nab]
g(d)=∑d|(a,b)[nab]=∑[nd]a=1∑[nd]b=1[[nd2]ab]
发现g(d)的式子中a和b的取值不可能超过[nd2]于是:
g(d)=∑d|(a,b)[nab]=∑[nd2]a=1∑[nd2]b=1[[nd2]ab]
由g(d)和f(d)的定义可得:
g(d)=∑ndi=1f(i×d)
反演得到:
f(d)=∑ndi=1μ(i)×g(i×d)
于是:
Ans=f(1)=∑ndi=1μ(i)×g(i)
=∑ndi=1μ(i)×[abc≤n]
按照张俊的方法,可以假定a≤b≤c,然后特殊情况另外讨论,发现a,b的范围是有个区间的,然后c是可以根据a,b算出来的,于是就可以做了。