欧拉函数模版

long long euler(long long n)
{
    long long ans=1,i;
    for(i=2;i*i<=n;i++)
    {
        if(n%i==0)
        {
            ans*=(i-1);
            n/=i;
            while(n%i==0)
            {
                ans*=i;
                n/=i;
            }
        }
    }
    if(n>1)ans*=(n-1);
    return ans;
}

你可能感兴趣的:(Baoge)