【学习笔记】数学知识-约数

约数

  • 若整数 \(n\) 除以整数 \(d\) 的余数为 \(0\) ,即 \(d\) 能整除 \(n\) ,则称 \(d\)\(n\) 的约数, \(n\)\(d\) 的倍数,记为 \(d|n\) 。若整数 \(n\) 除以整数 \(d\) 的余数不为 \(0\) ,即 \(d\) 不能整除 \(n\) ,则记为 \(d \nmid n\)
  • 性质
    • \(n\) 为正整数,则 \(\sum\limits_{i=1}^{n}[i|n] \le 2\sqrt{n}\)
    • \(n\) 为正整数,则 \(\sum\limits_{i=1}^{n}\sum\limits_{d=1}^{i}[d|i] \approx n \times \log n\)
  • \(\gcd(a,b)\) 表示 \(a\)\(b\) 的最大公约数,同理可推广到 \(\gcd(a,b,c, \dots )\)
    • \(\gcd(a,b)\) 在数学中用符号记作 \((a,b)\)
    • 性质
      • 特别地,若 \(a>0\) ,有 \(\gcd(a,0)=a\)
      • \(n,a,b\) 为正整数,且有 \(2 \le n,a<b \le n\) ,则 \(\max \{\gcd(a,b) \}= \left\lfloor\dfrac{n}{2}\right\rfloor\)
        • 构造 \(a=\left\lfloor\dfrac{n}{2}\right\rfloor,b=2a=2\left\lfloor\dfrac{n}{2}\right\rfloor\) 即可。
        • CF1370A Maximum GCD
      • \(n,m\) 均为正整数,则 \(\gcd(n!,m!)= \min(n,m)!\)
  • \(\operatorname{lcm}(a,b)\) 表示 \(a\)\(b\) 的最小公倍数,同理可推广到 \(\operatorname{lcm}(a,b,c, \dots )\)
    • \(\operatorname{lcm}(a,b)\) 在数学中用符号记作 \([a,b]\)
    • 性质
      • \(n,a,b\) 为正整数,且有 \(a,b \le n\) ,则 \(\max \{\operatorname{lcm} (a,b) \}=\begin{cases}1&n=1 \\ n(n-1)& n \ne 1\end{cases}\)
  • \(\forall a,b \in \mathbb{N}\) ,则 \(\gcd (a,b) \times \operatorname{lcm} (a,b)=a \times b\)

九章算术·更相减损法

  • \(\forall a,b \in \mathbb{N},a \le b\) ,则 \(\gcd (a,b)= \gcd (a,b-a)= \gcd (b,b-a)\)
    • 证明:设 \(d= \gcd(a,b),k_1= \frac{a}{d},k_2= \frac{b}{d}\) ,移项得 \(a=k_1 d,b=k_2 d\) ,又因为 \(d|(b-a),b-a=(k_2-k_1)d\) ,故 \(\gcd(a,b-a)= \gcd(k_1 d,(k_2-k_1)d)=d\)\(b\)\(b-a\) 同理。
  • \(\forall a,b,c \in \mathbb{N},a \le b \le c\) ,则 \(\gcd (a,b,c)= \gcd (a,b-a,c-b)\)
    • 证明:设 \(d= \gcd(a,b),k_1= \frac{a}{d},k_2= \frac{b}{d}\) ,移项得 \(a=k_1 d,b=k_2 d\) ,又因为 \(d|(b-a),b-a=(k_2-k_1)d\) ,故 \(\gcd(a,b-a)= \gcd(k_1 d,(k_2-k_1)d)=d\)\(b\)\(b-a\) 同理。
  • \(\forall a,b \in \mathbb{N}\) ,则 \(\gcd(2a,2b)= 2\gcd(a,b)\)
    • 例题
      • luogu P2152 [SDOI2009] SuperGCD
        • 考虑对更相减损法进行优化:
          • \(a,b\) 均为偶数时,有 \(\gcd(a,b)=2 \times \gcd(\dfrac{a}{2},\dfrac{b}{2})\)
          • \(a\) 为偶数, \(b\) 为奇数时,有 \(\gcd(a,b)= \gcd(\dfrac{a}{2},b)\)
          • \(b\) 为偶数, \(a\) 为奇数时,有 \(\gcd(a,b)= \gcd(a,\dfrac{b}{2})\)
        • 代码
  • 应用
    • \(n\) 为正整数,则 \(\bigoplus\limits_{i=1}^{n} \gcd(i,n)=\begin{cases}n&n \bmod 2=1\\ \dfrac{n}{2} \bigoplus n&n \bmod 2=0 \end{cases}\)
      • luogu P10031 「Cfz Round 3」Xor with Gcd
      • 证明
        • 依据更相减损法,有 \(\gcd(n,x)=\gcd(n,n-x)\) ,即与 \(n\) 互质的数 \(x,n-x\) 成对出现。
        • \(n\) 为奇数时,有 \(\bigoplus\limits_{i=1}^{n} \gcd(i,n)=n \bigoplus\limits_{i=1}^{\frac{n-1}{2}} \gcd(i,n) \bigoplus \gcd(n-1,n)=n\) 。当 \(n\) 为偶数时,有 \(\bigoplus\limits_{i=1}^{n} \gcd(i,n)=n \bigoplus \gcd(\dfrac{n}{2},n)\bigoplus\limits_{i=1}^{\frac{n}{2}-1} \gcd(i,n) \bigoplus \gcd(n-1,n)=n \bigoplus \gcd(\dfrac{n}{2},n)=\dfrac{n}{2} \bigoplus n\)

欧几里得算法

  • \(\forall a,b \in \mathbb{N}\) ,则 \(\gcd(a,b)= \gcd(b,a \bmod b)\)
    • 证明

      • \(a<b\) ,则 \(\gcd(b,a \bmod b)=\gcd(b,a)=\gcd(a,b)\)
      • \(a \ge b\) ,设 \(d= \gcd(a,b),a=q \times b+r(0 \le r <b)\) ,则 \(r=a \bmod b=a-q \times b\) ,又因为 \(d|a,d|b,d|(q \times b)\) ,则 \(d|(a-q \times b)\) ,即 \(d|r\) ,故 \(\gcd(a,b)=\gcd(b,r)=\gcd(b,a \bmod b)\)
    • 时间复杂度为 \(O(\log \max(a,b))\)

    • 代码实现

      点击查看代码
      int gcd(int a, int b)
      {
      	return b?gcd(b,a%b):a;
      }
      
    • 例题

扩展欧几里得算法

  • 裴蜀定理(贝祖定理, \(Bézout\) 定理)

    • 对于任意一对整数 \(a,b\) ,存在一对整数 \(x,y\) ,满足 \(ax+by= \gcd(a,b)\)
      • 证明
        • \(b=0\) 时,有一对整数 \(x=1,y=0\) 满足 \(a \times 1+0 \times 0=a= \gcd(a,0)\)
        • \(b \ne 0\) 时,则 \(\gcd(a,b)= \gcd(b,a \bmod b)\) 。假设存在一对整数 \(x,y\) ,满足 \(b \times x+(a \bmod b) \times y= \gcd(b,a \bmod b)\) ,又因为 \(b \times x+(a \bmod b) \times y=b \times x+(a-b \times \left\lfloor\dfrac{a}{b}\right\rfloor) \times y=a \times y+b \times (x-\left\lfloor\dfrac{a}{b}\right\rfloor \times y)\) ,所以令 \(x'=y,y'=x-\left\lfloor\dfrac{a}{b}\right\rfloor \times y\) ,此时有 \(ax'+by'= \gcd(a,b)\)
    • 应用
      • \(a,b\) 为正整数且互质,则不在集合 \(\{ ax+by|x,y \in \mathbb{N} \}\) 中的最大正整数为 \(ab-a-b\)
        • luogu P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目
        • 证明
          • \(ax+by=ab-a-b\) 无非负整数解。
            • 证明:易得两组解 \(\begin{cases}x_1=b-1 \\ y_1=-1\end{cases},\begin{cases}x_1=-1 \\ y_1=a-1\end{cases}\) 。利用 \(exgcd\) 不难求出 \(ax+by=ab-a-b\) 的一组特解 \(x_0,y_0\) ,则其通解可以表示为 \(\begin{cases}x=x_0+kb \\ y=y_0-ka\end{cases}\) ,其中 \(k \in \mathbb{Z}\) ,即 \(k\) 取遍整数集合。设 \(\begin{cases}b-1=x_0+k_1b \\ -1=y_0-k_1a\end{cases},\begin{cases}-1=x_0+k_2b \\ a-1=y_0-k_2a\end{cases}\) ,易得 \(k_1-k_2=1\) ,故 \(ax+by=ab-a-b\) 无非负整数解。
          • \(ax+by=ab-a-b+c\) 有非负整数解,其中 \(c\) 为正整数。
            • 证明:利用 \(exgcd\) 不难求出 \(ax+by=ab-a-b+c\) 的一组特解 \(x_0,y_0\) ,则其通解可以表示为 \(\begin{cases}x=x_0+kb \\ y=y_0-ka\end{cases}\) ,其中 \(k \in \mathbb{Z}\) ,即 \(k\) 取遍整数集合。取一组解 \(x',y'\) 使得 \(0 \le x' \le b-1\)

              \(0 \le ax' \le ab-a\)

              \(by' \le ax'+by' \le ab-a+by'\)

              \(by' \le ab-a-b+c \le ab-a+by'\)

              \(-b+c=c-b \le by'\)

              \(\dfrac{c}{b}-1 \le y'\)

              又因为 \(b,c \in \mathbb{N}^{*}\)

              \(0 < \dfrac{c}{b}\)

              \(-1<\dfrac{c}{b}-1 \le y'\)

              又因为 \(y' \in \mathbb{N}\)

              \(ax+by=ab-a-b+c\) 有非负整数解,其中 \(c\) 为正整数。

    • 推广
  • 代码实现

    点击查看代码
    int exgcd(int a,int b,int &x,int &y)
    {
    	if(b==0)
    	{
    		x=1;
    		y=0;
    		return a;
    	}
    	else
    	{
    		int d=exgcd(b,a%b,y,x);
    		y-=a/b*x;
    		return d;
    	}
    }
    
    • 上述程序求出方程 \(ax+by= \gcd(a,b)\) 的一组特解 \(x_0,y_0\) ,并返回 \(a,b\) 的最大公约数 \(d\)
  • 推广

    • 对于更为一般的方程 \(ax+by=c\) ,它有整数解当且仅当 \(\gcd(a,b)|c\)
      • \(d=\gcd(a,b),p=\dfrac{b}{d},q=\dfrac{a}{d}\)
      • 特解:先求出 \(ax+by=d\) 的一组特解 \(x_0,y_0\) ,此时就得到了 \(ax+by=c\) 的一组特解 \(\begin{cases}x_0'=\dfrac{c}{d} \times x_0 \\ y_0'=\dfrac{c}{d} \times y_0\end{cases}\)
      • \(x\) 的最小正整数解为 \(x_{min}=x_0'+\left\lceil\dfrac{1-x_0'}{p}\right\rceil \times p\) ,此时 \(y_0''=y_0'-\left\lceil\dfrac{1-x_0'}{p}\right\rceil \times q\)
        • \(y''>0\) ,即存在正整数解时,正整数解的数量为 \(\left\lfloor\dfrac{y''-1}{q}\right\rfloor +1\)\(x\) 的最大正整数解为 \(x_{max}=x_0'+\left\lfloor\dfrac{y''-1}{q}\right\rfloor \times p\)\(y\) 的最小正整数解为 \(y_{min}=((y''-1) \bmod q)+1\)\(y\) 的最大正整数解为 \(y_{max}=y_0'\)
        • \(y'' \le 0\) ,即不存在正整数解时, \(y\) 的最小正整数解为 \(y_{min}=y_0'+\left\lceil\dfrac{1-y_0'}{q}\right\rceil \times q\)
      • luogu P5656 【模板】二元一次不定方程 (exgcd)
        • 通解: \(\begin{cases}x'=\dfrac{c}{d} \times x_0+pk \\ y'=\dfrac{c}{d} \times y_0-qk\end{cases}\) 。其中 \(x_0,y_0,d\) 的定义同上, \(k\) 取遍整数集合 \(\mathbb{Z}\)
  • 例题

数论分块(整除分块)

posted @ 2023-08-18 16:47  hzoi_Shadow  阅读(43)  评论(0编辑  收藏  举报
扩大
缩小