首页 > 其他 > 详细

欧拉函数,欧拉筛复习

时间:2019-06-08 21:59:45      阅读:112      评论:0      收藏:0      [点我收藏+]

什么是欧拉函数?

欧拉函数φ(x)为[1,x]中与x互质的数

几个重要结论

1.φ(1)=1 这个显而易见吧

2.φ(质数x)=x-1;

3.如果p|x,那么?(x∗p)=?(x)∗p,否则?(x∗p)=?(x)∗(p−1)。非常有用的结论

欧拉筛模板,时间复杂度O(n),所以是线性筛

bool vis[maxn];
int prime[maxn];
int phi[maxn];
for(int i=2;i<=n;i++)
{
    if(!vis[i])
    {
        prime[++cnt]=i;
        phi[i]=i-1;
    }
    for(int j=1;j<=cnt&&prime[j]*i<=maxn;j++)
    {
        vis[prime[j]*i]=true;
        if(i%prime[j]==0)
        {
            phi[i*prime[j]]=phi[i]*prime[j];
            break;
        }
        else phi[i*prime[j]]=phi[i]*(prime[j]-1);
    }
}

 

欧拉函数,欧拉筛复习

原文:https://www.cnblogs.com/LJB666/p/10991711.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!