void phi_table(){
phi[1]=1;
fo(i,2,mn){//从2开始计算
if (!phi[i]){//等价于是质数
pri[++pt]=i;
phi[i]=i-1;
}
fo(j,1,pt){ //枚举添加的小质数
te=i*pri[j];
if (te>mn)
break;
if (i%pri[j]==0){ //重复的质数
phi[te]=phi[i]*pri[j];
break;
}
phi[te]=phi[i]*(pri[j]-1);//不同的质数
}
}
}
线性筛法求phi函数表
最新推荐文章于 2024-07-09 11:03:11 发布