线性筛:
(1) i%prime[i]==0 : i*prime[j] 被 prime[j] 第一次筛到 。
(2)i%prime[j]!=0 :i*prime[j] 被 prime[j] 第一次筛到 。
(3)prime[j] 筛到的 i*prime[j] 都是 i*prime[j] 的最小质因子,且只被筛一次。
积性函数线性筛:
(1) 考虑 i=1 和 i 是质数时的函数值。
(2) i%prime[j]==0 :prime[j] 第一次筛到 i*prime[j] , 此时 i*prime[j] 中 prime[j] 的次幂大于 1 ,考虑如何转移。
(3) i%prime[j]!=0 :prime[j] 第一次筛到 i*prime[j],此时 i 与 prime[j] 互质,由积性函数直接得出。
保留最小质因子的最高次幂的值 ,则 i 和 prime[j] 不互质时:
1: i != low[i] :
2: i == low[i]:考虑 的转移就比较简单了
:因数的次幂 的和:: 保存每个数的最小质因子的最高次幂 的值 ,和此质因子对这个数的贡献 。考虑如何转移。
莫比乌斯:
套路:
直接枚举 d 或 T=k*d 。
公式:
狄利克雷乘积:
杜教筛:
要求积性函数 的前缀和:构造 ,使 (狄利克雷乘积)
设,对求和。
可推导:。
递归求解,可先筛出前 个前缀和。
例:
设
则 ,有
例:
设
则 ,有
Trick:
转换分块(求前缀和)的函数,减少运算。