「数论」

Author Avatar
落影汐雾 8月 09, 2019
  • 在其它设备中阅读本文章

Update on A.D.2019-08-09

只会GCD

取模

求$\dfrac{a}{b}\bmod p​$时,求$b^{-1}​$使$b*b^{-1}\equiv1\pmod p​$即$b​$的逆元

费马小定理

定理:当$p​$是质数时$a^{p-1}\equiv 1\pmod p​$

逆元:由$a^{p-1}\equiv 1\pmod p​$得$a\times a^{p-2}\equiv 1\pmod p​$

即$a^{p-2}$是$a$在模$p$意义下的逆元

欧拉定理

若$gcd(a,p)=1$则$a^{\varphi(p)}\equiv1\pmod n$

当$p$是质数时$\varphi(p)=p-1$

即$a^{p-1}\equiv1\pmod n$即费马小定理

GCD EXGCD

#define ll long long
ll gcd(ll a, ll b) { return b ? gcd(b, a%b) : a; }
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;
}

$gcd$用来求解$a,b$的最大公约数

$lcm(a,b)=\dfrac{a\times b}{gcd(a,b)}​$,lcm是最大公约数

$exgcd$用来求解$ax+by=gcd(a,b)$,证明大概是化式子构造递归的解法,反正看了也早晚会忘就是了

$exgcd$还可以求解$ax\equiv b\pmod p​$形式的同余方程

$exgcd(a,p,x,y)$求出来的$x$就是$a$关于$p$的逆元

CRT exCRT

求解一个同余方程组

两种东西都可以通过exgcd两两合并同余方程求解,不过CRT可以直接构造出答案。

CRT求解的$p​$是质数,exCRT的不是,都可以用exgcd合并做。

推导参考这个blog:扩展欧几里得算法与中国剩余定理

CRT直接构造的解:

令$M=\prod m_i, M_i=\frac M{m_i}​$,$t_i​$为$M_i​$在模$m_i​$意义下的逆元

方程组的解为

筛法

求$n$是不是素数直接枚举$1$到$\sqrt{n}$试除

埃筛

for(int i = 2; i <= N; i++) if(!vis[i]) {
    prime[++cnt] = i;
    for(int j = 1; i * j <= N; j++)
           vis[i * j] = 1;
}

线筛

for(int i = 2; i <= N; i++) {
    if(!vis[i]) prime[++cnt] = i;
    for(int j = 1; j <= cnt && i * prime[j] <= N; j++) {
        vis[i * prime[j]] = 1;
        if(i % prime[j] == 0) break;
    }
}

本文由 落影汐雾 原创,采用 保留署名-非商业性使用-禁止演绎 4.0-国际许可协议
本文链接:https://x.lyxw.xyz/2019/number_theory/