已知 ,现在请求出下面式子的值:
由于值可能过大所以请对 取模
Constraints
$ n \leq 10^9 $
Solution
对 和 进行质因数分解,即 , ,可以得到:
将原答案转换为:
然后令 ,则由以下推导:
可得:
杜教筛即可。
Code
1 |
|
Living is do or die.
已知 f(x)=∑d∣xμ(d)⋅d ,现在请求出下面式子的值:
i=1∑nj=1∑nf(gcd(i,j))⋅f(lcm(i,j))
由于值可能过大所以请对 109+7 取模
$ n \leq 10^9 $
对 i 和 j 进行质因数分解,即 i=∏pqi ,j=∏pqj ,可以得到:
f(gcd(i,j))⋅f(lcm(i,j))=∏f(pmin(qi,qj))⋅f(pmax(qi,qj))=f(i)⋅f(j)
将原答案转换为:
ans=i=1∑nj=1∑nf(gcd(i,j))⋅f(lcm(i,j))=i=1∑nj=1∑nf(i)⋅f(j)=(i=1∑nf(i))2=(i=1∑nd∣i∑μ(d)⋅d)2=(i=1∑nμ(i)⋅i⋅⌊in⌋)2
然后令 S(n)=∑i=1nμ(i)⋅i ,则由以下推导:
1=i=1∑ni⋅j∣i∑μ(j)=i=1∑ni⋅j=1∑⌊in⌋j⋅μ(j)=i=1∑ni⋅S(⌊in⌋)
可得:S(n)=1−∑i=2ni⋅S(⌊in⌋)
杜教筛即可。
1 | #include<cstdio> |