欧拉函数打表

求任意一个数的欧拉函数值

long long  Euler(long long  num)
{
    long long  temp=num;
    for(long long i=2;i*i<=num;i++)
    if(num%i==0)
    {
        while(num%i==0)
        num=num/i;
        temp=temp/i*(i-1);
    }
    if(num!=1)
    temp=temp/num*(num-1);
    return temp;
}

欧拉函数打表

for(i=1; i<=maxn; i++)
    p[i]=i;

for(i=2; i<=maxn; i+=1)
    if(p[i]==i)
    {
        for(j=i; j<=maxn; j+=i)
            p[j]=p[j]/i*(i-1);
    }

posted on 2017-09-22 20:14  zzuzxy  阅读(96)  评论(0)    收藏  举报

导航