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

约数

  • 若整数 \(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  阅读(252)  评论(0)    收藏  举报
扩大
缩小