关于一些函数求前缀和的问题

1. f(n) f ( n ) 为n的因子的和,求:

i=1nf(i) ∑ i = 1 n f ( i )

其中 n<1012 n < 10 12

做法其实也是常见的套路:

ans=injn[j|i]j=jnjin[j|i]=j=1njnj a n s = ∑ i n ∑ j n [ j | i ] ∗ j = ∑ j n j ∑ i n [ j | i ] = ∑ j = 1 n j ⌊ n j ⌋

这个就很显然了,分块求就行了,复杂度 O(n) O ( n )

2.有欧拉函数 ϕ(x) ϕ ( x ) ,求:

i=1nϕ(i) ∑ i = 1 n ϕ ( i )

其中 n<1011 n < 10 11
这个之前讲过了,杜教筛套路一波。复杂度 O(n23) O ( n 2 3 )

3.有莫比乌斯函数 μ(x) μ ( x ) ,求:

i=1nμ(i) ∑ i = 1 n μ ( i )

其中 n<1011 n < 10 11
同样杜教筛套路一波。复杂度 O(n23) O ( n 2 3 )

4.设:

f(n)=i=1nigcd(n,i)F(n)=i=1nf(i) f ( n ) = ∑ i = 1 n i g c d ( n , i ) F ( n ) = ∑ i = 1 n f ( i )

求: F(n)%(109+7),n<109 F ( n ) % ( 10 9 + 7 ) , n < 10 9

则:

f(n)=i=1nd|n[gcd(i,n)==d]id=d|nnd|in[gcd(i,n)==d]id=d|nnd|ind[gcd(id,nd)==1]id=d|nnknd[gcd(k,nd)==1]k f ( n ) = ∑ i = 1 n ∑ d | n [ g c d ( i , n ) == d ] ∗ i d = ∑ d | n n ∑ d | i n [ g c d ( i , n ) == d ] ∗ i d = ∑ d | n n ∑ d | i n d [ g c d ( i d , n d ) == 1 ] ∗ i d = ∑ d | n n ∑ k n d [ g c d ( k , n d ) == 1 ] ∗ k

可以发现 里面的和式其实就是欧拉函数 ϕ(x) ϕ ( x ) 里所有与x互质的数的和设为 h(x) h ( x )
则:
f(n)=d|nh(nd)=d|nh(d)=12(1+d|ndϕ(d)) f ( n ) = ∑ d | n h ( n d ) = ∑ d | n h ( d ) = 1 2 ( 1 + ∑ d | n d ϕ ( d ) )

所以:
F(n)=i=1n12(1+d|idϕ(d))=n2+12i=1nd|idϕ(d) F ( n ) = ∑ i = 1 n 1 2 ( 1 + ∑ d | i d ϕ ( d ) ) = n 2 + 1 2 ∑ i = 1 n ∑ d | i d ϕ ( d )

设:

g(n)=i=1nd|idϕ(d) g ( n ) = ∑ i = 1 n ∑ d | i d ϕ ( d )

实际上就是求 g(n) g ( n ) ,则:
g(n)=i=1nd|idϕ(d)=i=1nd=1nidϕ(d) g ( n ) = ∑ i = 1 n ∑ d | i d ϕ ( d ) = ∑ i = 1 n ∑ d = 1 ⌊ n i ⌋ d ϕ ( d )

发现不是很好搞阿。。。
ϕ(n)=nϕ(n) ϕ ′ ( n ) = n ϕ ( n ) ,容易验证 ϕ(n) ϕ ′ ( n ) 是积性函数。
里面有类似的狄利克雷卷积的结构,能不能找另一个积性函数和他卷一卷?(未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值