数论1

1. 欧拉函数

1-N中与N互质的数的个数:

\[已知N=p_1^{a_1}p_2^{a_2}\cdots p_n^{a_n},则\phi(N)=N\times(1-\frac{1}{p_1})(1-\frac{1}{p_2})...(1-\frac{1}{p_n}) \]

2. 筛欧拉函数

  • 与线性筛同步,注意先初始化euler[1]=1
  • 线性筛筛到素数时,euler[i]=i-1
  • 线性筛筛出合数时有两种情况
    • i的最小质因子为prime[j] 则由欧拉函数知道\(\phi(i\cdot prime[j])=\phi(i)\cdot prime[j]\)
    • i的最小质因子不是prime[j] 由欧拉函数知道\(\phi(i\cdot prime[j])=\phi(i)(prime[j]-1)\)

3. 快速幂

问题描述:
给定a,p,k,求出

\[a^k\mathrm{mod}\;p=? \]

简单的二进制优化

4. 同余欧拉定理

已知一个数与当前的数互质,寻找另一个数与当前的数互质

\(a,m\in N^+,(a,m)=1,\)

\[a^{\phi(m)}\equiv 1(\mathrm{mod} \;m) \]

推论 费马小定理
当m为质数时,

\[a^{m-1}\equiv 1(\mathrm{mod}\;m) \]

5. 裴蜀定理

\[ax+by=m有整数解(x,y)\Leftrightarrow m是(a,b)的倍数 \]

6. 扩展欧几里得算法

用于寻找裴蜀定理的解

将ax+by=gcd(a,b)转化成by+a%b·x=gcd(a,b)的子问题,解出子问题从而得到原问题的解

\[\begin{align} & by+[a-\lfloor \frac{a}{b}\rfloor\cdot b]\cdot x=gcd(a,b)\\ & ax+b(y-\lfloor \frac{a}{b}\rfloor\cdot x)=gcd(a,b) \end{align} \]

其中,任意解的形式为:

\[\begin{align} x=x_0+k\displaystyle{\frac{b}{gcd(a,b)}}\\ y=y_0-k\displaystyle{\frac{a}{gcd(a,b)}} \end{align} \]

7. 求解线性同余方程

\[a\times x\equiv b(\mathrm{mod}\;m) \]

转化为:
\(a\times x+m\times(-y)=b\)

由裴蜀定理,上述方程有解当且仅当b为(a,m)的倍数
由扩展欧几里得算法可以给出它的一个解,当然也可以给出任意解的形式

int main()
posted @ 2022-11-13 12:30  绊缘  阅读(9)  评论(0)    收藏  举报