int pr[N], pr_cnt, flg[N], mu[N], sum_mu[N];
void init() {
mu[1] = 1;
for (int i = 2; i < N; i ++) {
if (!flg[i])pr[++pr_cnt] = i, mu[i] = -1;
for (int j = 1; j <= pr_cnt && i*1ll * pr[j] < N; j ++) {
flg[i * pr[j]] = 1;
if (i%pr[j] == 0) {
mu[i * pr[j]] = 0;
break;
}
mu[i * pr[j]] = -mu[i];
}
}
for (int i = 1; i < N; i ++) sum_mu[i] = sum_mu[i-1] + mu[i];
}
相关文章
- 01-30【bzoj3309】DZY Loves Math 莫比乌斯反演+线性筛
- 01-30The Euler function 线性筛法求欧拉函数
- 01-30【bzoj 4176】 Lucas的数论 莫比乌斯反演(杜教筛)
- 01-30bzoj4176 - Lucas的数论(杜教筛,莫比乌斯反演)
- 01-30洛谷P1390 公约数的和 欧拉函数+容斥+线性筛
- 01-30[2021 CCCC天梯赛] 可怜的简单题 (概率期望 莫比乌斯反演 杜教筛)
- 01-30线性筛/欧拉筛/莫比乌斯函数
- 01-30P6222 「简单题」加强版 莫比乌斯反演 线性筛积性函数
- 01-30Luogu P2158 仪仗队【莫比乌斯反演】【线性筛】
- 01-30Comet OJ - Contest #8 神奇函数 莫比乌斯反演+欧拉函数