欧拉函数

\[\varphi (x) = p_1^{k1-1} (p_1-1) \times p_2^{k2-1} (p2-1) \times p_3^{k3-1}(p3-1) \]

\[\varphi (x) =x \times \frac{(p_1-1)}{p_1} \times \frac{(p_2-1)}{p_2} \times\frac{(p_3-1)}{p_3} \]

所以求单个欧拉函数,就可以

ll Euler(ll x) {
    ll ans = n;
    for (ll i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            ans = ans / i * (i - 1);
            while (n % i == 0) n /= i;
        }
    }
    if (n > 1) ans = ans / n * (n - 1);
    return ans;
}
posted @ 2021-05-30 11:15  u_yan  阅读(36)  评论(0编辑  收藏  举报