facsum (线性筛 积性函数)

facsum10.20思路: 对于式子进行分析,前面的Phi就是一个很常规的转化,变成i^m。后边一个约数个数,一个Mobius,一个单位函数都是积性函数,所以卷起来也就积性啦(不是积性怎么做嘛。。) 于是就上线性筛了。 对于 if(i % prime[j] == 0) 的情况,也就是 f[p^k*c] = f[p^k] * f[c]。 所以我们只用考虑 f[p^k] 如何计算,d就是p^
摘要由CSDN通过智能技术生成

facsum

10.20

思路:
对于式子进行分析,前面的Phi就是一个很常规的转化,变成i^m。后边一个约数个数,一个Mobius,一个单位函数都是积性函数,所以卷起来也就积性啦(不是积性怎么做嘛。。)
于是就上线性筛了。
对于 if(i % prime[j] == 0) 的情况,也就是 f[p^k*c] = f[p^k] * f[c]。
所以我们只用考虑 f[p^k] 如何计算,d就是p^i,当 (i <= k-2) 是,n/d 中就会有多个p,那么mu自然就是0了,不必计算。
所以 f[p^k] = p^k^m * (g[p^k] * mu[1] * 1 + g[p^(k-1)] * mu[p] * p) = p^k^m * (k + 1 + k * (-p))
= p^k^m * (k - kp + 1)。结束
话说打表找规律也不失为一种很好的方法。

ps:空间限定比较严,那些又开mu又开phi什么的就只有唱歌啦啦啦。

#include <cstdio>
#include <cstring>
#include <algorithm>
#define LL long long
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值