线性筛相关

素数筛法

Eratosthenes 筛法

大致上就是从2开始往后扫,找到一个未被筛的(素)数以后将它在n以内的倍数全部筛去。
时间复杂度O(nloglogn),空间复杂度O(n)

Euler 筛法

这个算法的精妙之处在于每一个合数只会被它最小的素因子筛去,它对枚举的每一个数都尝试乘上一个质数,将构出的合数筛去。
考虑合数n=pm=pm,其中p是它最小的素因子,p也是一个素因子但是p>p。那么枚举到mn一定会被筛去,因为m不存在比p更小的质因子。然而枚举到mn不会被筛去,因为m一定存在p这个质因子,枚举乘上的素数到p的时候就结束了。
综上,Euler筛法的时间、空间复杂度都是O(n)

Möbius函数的线性筛法

由于μ函数是一个积性函数,而且它的性质比较特殊,我们只需要在欧拉筛的过程中讨论一下就可以了。

实际上只要能快速算出f(pk),配合素数线筛就可以线性或者带个log地筛出积性函数的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值