数论 _ 互质与欧拉函数

概念

互质
若gcd(a,b)=1 则称a与b互质。

欧拉函数
1~N 中与N 互质的数的个数被称为欧拉函数,记为\(φ(N)\)
若N根据算术基本定理分解为\(N=p_1^{c_1}p_2^{c_2}...p_m^{c_m}\)

则$$φ(n)=n\prod_{i=1}^{m}\left(1-\frac{1}{p}\right)$$

证明:

设p 是 N 的质因子,1~N中的倍数有\(p, 2p , 3p....(N/p)×p,\)\(\frac{N}{p}\)个。 同理,若 q 也是N的因子,则1~N中q的倍数有N/q个。
如果我们把这 \(\frac{N}{p}+\frac{N}{q}\)个数去掉,那么 \(p×q\) 的倍数被排除了两次,根据容斥原理,需要加回来一次。
因此,1~N 中不与N 含有共同质因子p或q 的数的个数为:
image
式子展开后就和上面的容斥原理一样了,证毕。

模板代码

求一个数phi

根据计算式,我们只需要再分解质因数,即可顺便求出一个数的欧拉函数

上限复杂度: \(O ( \sqrt n )\)
下限复杂度: \(O(logn)\)
模板代码

int phi(int x)
{
    int res = x;
    for (int i = 2; i <= x / i; 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;
}

求1 ~ n的phi

如果与上面的方法来求1~n的欧拉函数复杂度是\(O (n \sqrt n )\)
如果在线性筛法过程中求欧拉函数,时间复杂度: \(O (n)\)

typedef long long LL;
const int N = 1000010;

int primes[N], cnt;
int euler[N];
bool st[N];


void get_eulers(int n)
{
    euler[1] = 1;
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i])
        {
            primes[cnt ++ ] = i;
            euler[i] = i - 1;
        }
        for (int j = 0; primes[j] <= n / i; j ++ )
        {
            int t = primes[j] * i;
            st[t] = true;
            if (i % primes[j] == 0)
            {
                euler[t] = euler[i] * primes[j];
                break;
            }
            euler[t] = euler[i] * (primes[j] - 1);
        }
    }
}

性质

性质0
对于质数p,它的欧拉函数值\(ϕ(p)=p−1\)

证明:
因为p为质数,所以比它小的数都和它互质,即在1~p中共有p-1个数和它互质。
证毕。

性质1
\(∀n > 1\),1~n中与n 互质的数的和为\(n×\frac{φ(n)}{2}\)

证明

由于gcd(n,x)=gcd(n,n-x),所以与n互质的数\(x\)\(n-x\)是"成对"的出现。进而n+(n-x)=n. 就得出了

性质2
若a,b互质,则\(φ(ab)=φ(a)φ(b)\)
证明

a,b互质,所以分解质因数没有一样的,根据欧拉函数的公式就可以将 φ(a) ,φ(b)合并得出了φ(N)。

把性质2推过到一般函数可以得到积性函数的概念。
积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数)

性质2.1
当n为奇数时,\(ϕ(2∗n)=ϕ(n)\)

证明:
当n为奇数时,n与2互质由欧拉函数是积性函数可知,n与2互质时,ϕ(2n)=ϕ(2)∗ϕ(n)又因为ϕ(2)=1所以ϕ(2n)=ϕ(n)
证毕。

性质3
p 为质数,若p|n 且\(p^2|n\),则\(φ(n)=φ(\displaystyle\frac{n}{p})×p\)

证明

y由\(p^2|n\)可知 \(φ(\frac{N}{p})\) 中有质因数有p,因此将 \(φ(N)\) 和 $φ(\frac{N}{p}) $的欧拉函数表达式写出后,相除结果就是p,所以性质成立。

性质4
p 为质数,若p|n 且\(p^2\)
不n整除,则\(φ(n)=φ(\displaystyle\frac{n}{p})*(p-1)\)

证明

\(p^2\)不被n整除可知p与n/p互质,由于φ是积性函数,故 \(φ(n)=φ(\displaystyle\frac{n}{p})*φ(p)\) ,而 $φ(p)=p-1 $,所以性质成立。

性质5
\(n=p^k\)时,\(ϕ(n)=p^k−p^{k−1}\)
证明:

因为\(n=p^k\),所以n只有p一个质因数,则由欧拉函数的计算式可得\(ϕ(n)=p^k*(1-\frac{1}{p})=p^k-p^{k-1}\)

性质6
$ \sum_{d|n}φ(d)=n$

posted @ 2022-07-22 17:18  kingwzun  阅读(237)  评论(0编辑  收藏  举报