欧拉函数算法

最大公约数算法

int gcd(int a,int b)
{
    return b==0 ? a : gcd(b, a%b);
}

欧拉函数

#define ll long long
ll phi(ll x)
{   
    ll res = x;
    for(ll i = 2; i * i <= x; i ++)
    {
        if(x % i == 0)
        {
            res = res / i * (i - 1);
            while(x % i == 0)
                x /= i;
        }
    }
    if(x > 1)
        res = res / x * (x - 1);
    return res;
}

猜你喜欢

转载自blog.csdn.net/weixin_42324579/article/details/81435728