数论笔记
·质数
素数定理:
设 \(x \geq 1\) , 以 \(\pi(x)\) 表示不超过 \(x\) 的素数的个数。
当 \(x \rightarrow \infty\) 时,\(\pi(x) \to \dfrac{x}{\ln(x)}\)
质数筛法
1.埃式筛:从小到大一次枚举质数,将 \(\left[1, n\right]\) 内的所有倍数都标记为合数,未被标记的则为质数。
2.线性筛:保证对任一合数,只会被其最小质因数标记。对于每一个数 \(i\) ,从小到大枚举当前质数集 \(p\) ,\(p_j \leq i\) ,标记合数 \(i \times p_j\) ,若 \(p_j|i\) 说明 \(i = p_j \times u\) ;对于 \(p_j<p_k\leq i\) ,\(i \times p_k = p_j \times u \times p_k\) ,当 \(i = u \times p_k\) 时能被 \(p_j\) 筛掉的,筛质数的过程就不需要 \(p_k\) 参与了。
·约数
约数个数公式
一个整数N,可表示成 \(N = p_1 ^ {r_1} \cdot p_2 ^ {r_2} \cdot \cdots \cdot p_n^{r_n}\)
可得 \(N\) 的约数个数
·欧拉函数
欧拉函数 \(\phi(n)(n\in N^*)\) 表示小于等于你 \(n\) 的正整数中与 \(n\) 互质的个数,即:
若对 \(n\) 分解质因数使得 \(n = p_1^{k_1}p_2^{k_2}\cdots p_m^{k_m}\) ,可得:
证明1:
设 \(p_1, p_2\) 是 \(n\) 的质因数, 则在 \(\left[1, n\right]\) 有 \(\dfrac{n}{p_1}\) 个 \(p_1\) 倍数,有 \(\dfrac{n}{p_2}\) 个 \(p_2\) 倍数, 根据容斥原理,可得 \([1, n]\) 中不能被 \(p_1, p_2\) 整除的数共有:
归纳可得,即对于 \(n\) 的所有质因数 \(p_1, p_2, \cdots,p_m\) 可得:
证明2:
若 \(n = 1\) ,则 \(\phi(1) = 1\) ;
若 \(n\) 是质数, 则 \(\phi(n) = n - 1\) ,因为质数与小于它的每个正整数都互质;
若 \(n = p^k\) ( \(p\) 为质数, \(k\in N ^ *\) ),则小于等于 \(n\) 的数中,因子包含质数 \(p\) (也就是不存在互质)的数共计 \(p^{k - 1}\) 个, 即 \(p\times1,p\times2, \cdot\cdot\cdot, p \times p^{k - 1}\) ,剩余与 \(p_k\) 互质的数为:
若 \(n = p \cdot q\) ,而且 \(p, q\) 互质,有 \(\phi(n) = \phi(p\cdot q) = \phi(p) \cdot \phi(q)\)(欧拉函数是积性函数)[积性函数指对于所有互质的整数 \(a\) 和 \(b\) 有性质 \(f(a\cdot b) = f(a) \cdot f(b)\) 的数论函数]
证明:将 \(\left[1, p\times q\right]\) 的值排列如下
对于每一行数 \(i + jq\) ,其对 \(q\) 取余的余数为 \([1,2,3,…,q-1,0]\) ,即有 \(\phi(q)\) 个数与 \(q\) 互质;对于每一列数 \(i + jq, j \in [0, p − 1]\) ,由于 \(p, q\) 互质,同理也有 \(\phi(p)\) 个数与 \(p\) 互质。
对于任一与 \(p\times q\) 互质的数 \(a(a < p \times q)\),若 \(a\) 与 \(p\) 互质,\(a\) 与 \(q\) 互质,则 \(a\) 属于这 \(\phi(q)\) 行、\(\phi(p)\)列中的某一数。这样的 \(a\) 总共有 \(\phi(p) \cdot \phi(q)\) 个。即
通式:
对于任意一个非 \(1\) 的正整数,都可写成一系列质数之积:\(n = p_1^{k_1}\cdot p_2^{k_2}\cdots p_m^{k_m}\) ( \(p_1, p2, \cdots , p_m\) 都为质数)
由于欧拉函数的积性性质 \(\phi(p\cdot q) = \phi(p) \cdot \phi(q)\) 可得 :
由式 \(\phi(p^k) = p^k - p ^ {k - 1} = p^k( 1-\dfrac 1 p)\) 可得
即 \(\phi(n) = n\cdot\prod_{i = 1} ^ m(1 - \dfrac{1}{p_i})\)
欧拉函数性质:
· \(\phi(a\cdot b) = \phi(a) \cdot \phi(b) \cdot \dfrac{d}{\phi(d)}, d = \gcd(a, b)\)
· \(\left[1, n\right]\) 中所有与 \(n\) 互质的数之和为 \(\dfrac{\phi(n) \times n}{2}\)
· \(\sum_{i|n}\phi(i) = n\)
·
\(\phi(n) = \begin{cases}
\phi(\dfrac{n}{p}) \times p, &p | n, p^2 \ n\\
\phi(\dfrac{n}{p}) \times (p - 1), &p | n,p^2 \nmid n
\end{cases}\)
· 不定方程
不定方程指未知数的个数多于方程个数,且未知数受到某种限制(如要求是有理数、整数或正整数等等)的方程或方程组。
二元一次不定方程:就是形如 \(ax + by = c\) 的方程,其中 \(a, b, c\) 已知。
解法:
1.判断是否有解(裴蜀定理:\(a, b\) 是不全为 \(0\) 的整数 \(x, y\) , 使得 \(ax + by = \gcd(a, b\))
\(\qquad\) 若 \(c \mod \gcd(a, b) \not = 0\) ,那么方程不存在整数解。
2.化简、转化
\(\qquad\) 方程可转化为 \(a'x + b'y = c',\)
\(\qquad\) 其中 \(a' = \dfrac{a}{\gcd(a,b)}, b' = \dfrac{b}{\gcd(a,b)},c' = \dfrac{c}{\gcd(a,b)}\)
3.用扩欧求特解
扩展欧几里得(exgcd)定理:
对于两个不全为 \(0\) 的整数 \(a, b\) ,必有一组解 \(x, y\) ,使得 \(ax + by = \gcd(a, b)\) 。
对于方程 \(a'x + b'y = c'\) ,我们知道 \(\gcd\) 有一个性质为 \(\gcd(a, b) = \gcd(b, a \mod b)\) ,若辗转相除法求到最后, \(b'\) 将等于 \(0\) ,此时 \(x = \dfrac{c'}{a'}, y = 0\) 。这就求出了一组特解。
而对于方程 \(ax + by = \gcd(a, b)\) ,用扩欧实现即可。
由扩展欧几里得定理:\(ax + by = \gcd(a, b)\)
可知若此时 \(b=0\) ,说明 \(\gcd(a, 0) = a\) 。
原式变为 \(ax + by = a \to x = 1,y = 0\)