OI里的数论:简单数论
零、二项式定理
P.S.在膜 n n n意义下时 ( x + y ) n ≡ x n + y n (x+y)^n≡x^n+y^n (x+y)n≡xn+yn。
一、欧几里得算法
即辗转相除法。 g c d ( a , b ) = g c d ( b , a m o d b ) gcd(a,b) = gcd(b,a \mod b) gcd(a,b)=gcd(b,amodb)。
二、裴蜀定理
对于不定方程 a x + b y = m ax + by = m ax+by=m , 其有解的充要条件为 g c d ( a , b ) ∣ m gcd(a, b) \ | \ m gcd(a,b) ∣ m
三、拓展欧几里得
求 a x + b y = g c d ( a , b ) ax + by = gcd(a,b) ax+by=gcd(a,b)的整数解。
求特解:对于方程 a x + b y = g c d ( a , b ) ax+by = gcd(a,b) ax+by=gcd(a,b),我们可以不断的往下变成 b x + ( a m o d b ) y = g c d ( a , b ) bx+(a\mod b)y=gcd(a,b) bx+(amodb)y=gcd(a,b) ,按照欧几里得的过程, b b b会变成 0 0 0, a a a就等于 g c d ( a , b ) gcd(a,b) gcd(a,b),所以得到由原方程往下推了不知道多少次的方程 a x = g c d ( a , b ) ax=gcd(a,b) ax=gcd(a,b) 来说,得到一个解 x = 1 , y = 0 x = 1, y = 0 x=1,y=0。现在得到了这个方程的解,再回溯回去,就可以得出原方程 a x + b y = g c d ( a , b ) ax+by = gcd(a,b) ax+by=gcd(a,b)的一个特解。
求所有解:对于关于 x , y x,y x,y的方程 a x + b y = g ax+by = g ax+by=g来说,让 x x x增加 b g \dfrac{b}{g} gb,让 y y y减少 y g \dfrac{y}{g} gy,等式两边还相等。
四、乘法逆元
tip:p的倍数的逆元无法求出。
扩展欧几里得
void Exgcd(ll a, ll b, ll &x, ll &y) {
if (!b) x = 1, y = 0;
else Exgcd(b, a % b, y, x), y -= a / b * x;
}
五、费马小定理
若 p p p质数, a a a不是 p p p的倍数,则 a p − 1 ≡ 1 ( m o d p ) a^{p-1}≡1\pmod p ap−1≡1(modp)。
六、欧拉定理
欧拉函数: φ ( n ) φ(n) φ(n)表示 1 1 1到 n − 1 n-1 n−1与 n n n互质的数。
欧拉函数求法: φ ( n ) = n ∗ ( 1 − 1 p 1 ) ∗ ( 1 − 1 p 2 ) ∗ . . . ∗ ( 1 − 1 p k ) φ(n)=n*(1-\dfrac{1}{p_1})*(1-\dfrac{1}{p_2})*...*(1-\dfrac{1}{p_k}) φ(n)=n∗(1−p11)∗(1−p21)∗...∗(1−pk1)。(时间复杂度 O ( n ) O(\sqrt{n}) O(n))
欧拉定理:若 a , p a,p a,p互质,则有 a φ ( p ) ≡ 1 ( m o d p ) a^{\varphi(p)}\equiv 1 \pmod p aφ(p)≡1(modp)。
七、扩展欧拉定理
a c ≡ { a c m o d φ ( m ) g c d ( a , m ) = 1 a c g c d ( a , m ) ≠ 1 ∧ c ≤ φ ( m ) a c m o d φ ( m ) + φ ( m ) g c d ( a , m ) ≠ 1 ∧ φ ( m ) ≤ c a^{c} \equiv \begin {cases}a^{c \mod \varphi(m)}&gcd(a,m)=1\\a^c&gcd(a,m)\not=1 \land c\leq \varphi(m) \\ a^{c\mod\varphi(m)+\varphi(m)}&gcd(a,m)\not=1\land \varphi(m) \leq c\end{cases} ac≡⎩⎪⎨⎪⎧acmodφ(m)acacmodφ(m)+φ(m)gcd(a,m)=1gcd(a,m)=1∧c≤φ(m)gcd(a,m)=1∧φ(m)≤c
八、中国剩余定理
中国剩余定理:设正整数 m 1 , m 2 , m_1,m_2, m1,m2,…… m k m_k mk两两互素,则同余方程组
{ x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) . . . . . . x ≡ a k ( m o d m k ) \begin{cases}x\equiv a_1 \pmod{m_1}\\x\equiv a_2 \pmod{m_2}\\......\\x\equiv a_k \pmod{m_k}\end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧x≡a1(modm1)x≡a2(modm2)......x≡ak(modmk)
有整数解,则解在 m o d M = ∏ i = 1 k m i \mod M=\prod^{k}_{i=1}m_i modM=∏i=1kmi下有意义,则 x = ( a 1 × M 1 × M 1 − 1 + a 2 × M 2 × M 2 − 1 + . . . . . . + a k × M k × M k − 1 ) m o d M x=(a_1\times M_1\times M_1^{-1}+a_2\times M_2\times M_2^{-1}+......+a_k\times M_k\times M_k^{-1})\mod M x=(a1×M1×M1−1+a2×M2×M2−1+......+ak×Mk×Mk−1)modM
其中 M i = M / m i , M i − 1 × M i ≡ 1 ( m o d m i ) M_i=M/m_i,M_i^{-1}\times M_i \equiv 1\pmod{m_i} Mi=M/mi,Mi−1×Mi≡1(modmi)
九、扩展中国剩余定理:不保证两两互素
先从简单的情况考虑
∵ { x ≡ c 1 ( m o d m 1 ) x ≡ c 2 ( m o d m 2 ) \because\begin{cases}x\equiv c_1\pmod{m_1}\\x\equiv c_2\pmod{m_2}\end{cases} ∵{x≡c1(modm1)x≡c2(modm2)
∴ x ≡ i n v ( m 1 gcd ( m 1 , m 2 ) , m 2 gcd ( m 1 , m 2 ) ) × c 2 − c 1 gcd ( m 1 , m 2 ) × m 1 + c 1 ( m o d m 1 × m 2 gcd ( m 1 , m 2 ) ) \therefore x\equiv inv(\frac{m_1}{\gcd(m_1,m_2)},\frac{m_2}{\gcd(m_1,m_2)})\times\frac{c_2-c_1}{\gcd(m_1,m_2)}\times m_1+c_1\pmod{\frac{m_1\times m_2}{\gcd(m_1,m_2)}} ∴x≡inv(gcd(m1,m2)m1,gcd(m1,m2)m2)×gcd(m1,m2)c2−c1×m1+c1(modgcd(m1,m2)m1×m2)
因此运算时可以选取两个式子进行推广。
十、二次剩余
解决形如 x 2 ≡ n ( m o d p ) x^2\equiv n\pmod{p} x2≡n(modp)的问题
定义勒让德符号 ( n p ) (\dfrac{n}{p}) (pn),当 p p p是 n n n的倍数则为 0 0 0,否则若 n n n是 p p p的二次剩余则为 1 1 1,否则为 − 1 -1 −1。
欧拉判别准则 ( n p ) ≡ n p − 1 2 ( m o d p ) \left({n\over p}\right)≡n^{\frac {p-1}2}\pmod p (pn)≡n2p−1(modp)。
找 a a a满足 ( a 2 − n p ) = − 1 (\dfrac{a^2-n}{p})=-1 (pa2−n)=−1。设 ω = a 2 − n \omega = \sqrt{a^2-n} ω=a2−n
∴ x = ( a + ω ) p + 1 2 \therefore x=(a+\omega)^{\frac{p+1}{2}} ∴x=(a+ω)2p+1
十一、n次剩余
咕咕咕
十二、卢卡斯定理
( s p + q t p + r ) ≡ ( s t ) ∗ ( q r ) ( m o d p ) (^{tp+r}_{sp+q})≡(^{t}_{s})*(^{r}_{q})\pmod p (sp+qtp+r)≡(st)∗(qr)(modp)
十三、扩展卢卡斯定理