整除,带余除法,GCD,同余
整除
设 \(a,b\in \mathbb{Z},a\ne 0\)。如果 \(\exists q\in \mathbb{Z}\),使得 \(b=a\times q\),那么就说 \(b\) 可被 \(a\) 整除,记作 \(a\mid b\) ;\(b\) 不被 \(a\) 整除记作 \(a\nmid b\) 。
--------OI Wiki
整除的性质:
-
$a\mid b \Longleftrightarrow -a\mid b\Longleftrightarrow a\mid -b\Longleftrightarrow \left | a \right | \mid \left | b \right | $
-
\(a\mid b \wedge b\mid c\Longrightarrow a\mid c\)
-
\(a\mid b \wedge a\mid c \Longleftrightarrow \forall x,y\in \mathbb{Z},a\mid (x b+y c)\)
-
\(a\mid b\wedge b\mid a \Longrightarrow b=\pm a\)
-
设 \(m\ne 0\),那么 \(a\mid b \Longleftrightarrow ma\mid mb\)
-
设 \(b\ne 0\),那么 $a\mid b\Longrightarrow \left | a \right | \le \left | b \right | $
-
设 \(a\ne 0,b=qa+c\),那么 \(a\mid b\Longleftrightarrow a\mid c\)
约数(因数):若 \(a\mid b\),则称 \(b\) 是 \(a\) 的倍数,\(a\) 是 \(b\) 的约数。
\(0\) 是所有非 \(0\) 整数的倍数。对于整数 \(b\ne 0\) ,\(b\) 的约数有无限个。
平凡约(因)数:对于整数 \(b\ne 0,\pm 1、\pm b\) 是 \(b\) 的平凡约数,当 \(b=\pm 1\) 时,\(b\) 只有两个平凡约数。
对于整数 \(b\ne 0\) ,\(b\) 的其他约数称为真约数(真因数、非平凡约数)。
如果没有特别说明,约数总是指正约数
带余除法
设 \(a,b\) 为两个给定的整数,\(a\ne 0\) 。设 \(d\) 是一个给定的整数。那么,一定存在唯一的一对整数 \(q,r\),满足 \(b=qa+r,d\le r<\left | a \right | +d\)。
无论 \(d\) 取何值,\(r\) 统称为余数。\(a\mid b\) 等价于 \(a\mid r\) 。
一般情况下 \(d\) 取 \(0\) ,此时等式 $b=qa+r,\le r< \left | a \right | $ 统称为带余除法。这里的余数 \(r\) 成为最小非负余数。
-------OI Wiki
\(a\div b=c...d\)
其中 \(a\) 是被除数,\(b\) 是除数,\(c\) 是商,\(d\) 是余数。
性质:
-
\(a=b\times c+d\)
-
\(b>d\ge 0\)
-
\(c=a/b,d=a\bmod b\)
-
\((a+b)\bmod c=(a\bmod c+b\mod c)\bmod c\) 同理减和乘也成立
-
任一整数被正整数 \(a\) 除后,余数一定是且仅是 \(0\) 到 \((a-1)\) 这 \(a\) 个数中的一个。
-
相邻的 \(a\) 个整数被正整数 \(a\) 除后,恰好取到上述 \(a\) 个余数。
对于四的证明:
设 \(a=x\times c+a',b=y\times c+b'\) 将这两个式子代入 \((a+b)\bmod c\) 后得到:\((x\times c+a'+y\times c+b')\bmod c\) 很显然最后剩下的是 \((a'+b')\bmod c\) ,而我们知道 \(a'=a\bmod c,b'=a\bmod c\) ,故得证。
最大公约数(gcd)和最小公倍数(lcm)
一组整数的公约数,是指同时是这组数中每一个数的约数的数。
是任意一组整数的公约数。
一组整数的最大公约数,是指所有公约数里面最大的一个。
-------OI Wiki
最为常见的是辗转相除法,也叫欧几里得算法。
已知两个数 \(a,b\),如果 \(a>b\) ,那么 \(\gcd(a,b)=\gcd(b,a\bmod b)\)。
证明:
设 \(a=b\times k+c\),显然有 \(c=a\bmod b\)。设 \(d\mid a,d\mid b\),则 \(c=a-b\times k,\frac{c}{d}=\frac{a}{d}-\frac{b}{d}\times k\)。
\(\frac{c}{d}\) 一定是整数,即 \(d\mid c\),所以对于 \(a,b\) 的公约数,他也会是 \(b,a\bmod b\) 的公约数。
那么我们对于 c++ 就可以直接用递归或者 while 循环来实现。
同余定理
定义:如果两个数 \(a\) 和 \(b\) 除以一个数 \(m\) 的余数相同,则称 \(a\) 与 \(b\) 同余,记作 \(a\equiv b\pmod{m}\)。
基本性质:
-
反身性:\(a\equiv a\pmod{n}\);
-
对称性:若 \(a\equiv b\pmod{n}\),则 \(b\equiv a\pmod{n}\);
-
传递性:若 \(a\equiv b\pmod{n}\),\(b\equiv c\pmod{n}\),则 \(a\equiv c\pmod{n}\);
-
同余式相加:若 \(a\equiv b\pmod{n}\),\(c\equiv d\pmod{n}\),则\(a+c\equiv b+d\pmod{n}\);
-
同余式相乘:若 \(a\equiv b\pmod{n}\),\(c\equiv d\pmod{n}\),则\(a\times c\equiv b\times d\pmod{n}\);
-
同余式相减:若 \(a\equiv b\pmod{n}\),\(c\equiv d\pmod{n}\),则\(a-c\equiv b-d\pmod{n}\);
-
若 \(a\equiv b\pmod{n}\),则\(a\times m\equiv b\times m\pmod{n}\)(其中 \(m\) 为自然数)
-
若 \(a\times c\equiv b\times c\pmod{n}\),\(\gcd(c,n)=1\),那么 \(a\equiv b\pmod{n}\);
-
若 \(a\equiv b\pmod{n}\),则 \(a^{n}\equiv b^{n}\pmod{n}\);
-
若 \(a\equiv b\pmod{n}\),\(c\equiv d\pmod{n}\),\(e\equiv f\pmod{n}\).....\(x\equiv y\pmod{n}\),则 \(a+c+e+...+x\equiv b+d+f+...+y\pmod{n}\);
本文来自博客园,作者:北烛青澜,转载请注明原文链接:https://www.cnblogs.com/Multitree/p/17364390.html
The heart is higher than the sky, and life is thinner than paper.