初等数论-01-整数的因子分解
带余除法
设\(a,b\)为整数,\(b>0\),则存在唯一整数\(q\)和\(r\)使得
$ a=qb + r,0\leq r <b $
带余除法又称欧几里得除法
整除
定义
如果余数\(r=0\), 那么, 我们就称\(b\)整除了\(a\), 记作\(b|a\); 这时我们也称\(b\)是\(a\)的因子,\(a\)是\(b\)的倍数。(如果余数\(r≠0\), 我们就称\(b\)不能整除\(a\), 记作: \(b∤a\))
(1)如果\(b|a\), 且\(b≠1\)和\(b≠a\), 则称\(b\)是\(a\)的真因子
(2)当\(b\)是\(a\)的因子时, 则存在\(q\)使得\(a=q*b=(-q)(-b)\), 这时\(-b\)也是\(a\)的因子
(3)为了简便, 整数的因子, 总假定为正整数
性质
设\(a>0, b>0, c >0\)则
(1) 若\(c|b\), \(b|a\), 则\(c|a\)
(2) 若\(b|a\), 则\(bc|ac\)
(3) 若\(c|a\), \(c|b\), 则对任意整数\(m\), \(n\)有\(c|(ma+nb)\)
整数的表示
\(a\)进制表示
设\(a\)为大于\(1\)的整数,任意正整数\(n\)可以表示为:
\(n=r_0+r_1a+r_2a^2+\ldots +r_ta^t,\)
其中,$ t\ge 0,\quad 0\le r_i<a,i=0,1,\ldots$
称为\(n\)的\(a\)进制表示
如何求正整数\(n\)的\(a\)进制表示
第一步求\(\{q_i\}\):利用带余除法
用\(a\)去除\(n\),$ n=q_0a+r_0,\quad 0\le r_0<a$
用\(a\)去除\(q_0\),$ q_0=q_1a+r_1,\quad 0\le r_1<a$
\(\cdots\)
用\(a\)去除$ q_i\(,\)q_i=q_{i+1}a+r_{i+1},\quad 0\le r_{i+1}<a$
直到$ q_t<a$
\(n=q_0a+r_0\)
\(=(q_1a+r_1)a+r_0\)
...
\(=(q_{t-1}a+r_{t-1})a^{t-1}+r_{t-2}a^{t-2}\ldots +r_1a+r_0\)
\(=q_{t-1}a^t+r_{t-1}a^{t-1}+\ldots +r_1a+r_0\)
最大公因子与辗转相除法
公因子:设\(a,b\)是两个非零整数,\(d\)为正整数,若\(d|a,d|b\),则称\(d\)为\(a\)和\(b\)的公因子
最大公因子:设\(a,b\)是两个非零整数,\(d\)为正整数,若:
(1)\(d|a,d|b\)
(2)对\(a\)和\(b\)的任意公因子\(e\),皆有\(e|d\)
则称\(d\)为\(a\)和\(b\)的最大公因子,记为\((a,b)\)
\(n\)个整数的公因子:设\(a_1,...,a_n\)是n个非零整数,\(d\)为正整数,若\(d|a_i,1≤i≤n\),则称\(d\)为\(a_1,...,a_n\)的公因子
\(n\)个整数的最大公因子:设\(a_1,...,a_n\)是n个非零整数,\(d\)为正整数
若:(1)\(d|a_i,i=1,2,...,n\),(2)对任意正整数\(e\),若\(e|a_i,1≤i≤n\)则\(e|d\)
则称\(d\)为\(a_1,...,a_n\)的最大公因子,记为\((a_1,...,a_n)\)
定理A:设a、b、c为三个正整数,且:
其中\(q\)为整数,则\((a,b)=(b,c)\)
定理B:设\(a_{1} ,…,a_{n}\)是\(n\)个整数,令:
\((a_{1},a_{2})=d_{1},(d_{1},a_{3})=d_{2},…(d_{n-2},a_{n})=d_{n-1}\)
则\((a_{1} ,…,a_{n})=d_{n-1}\)
欧几里得辗转相除法
利用带余除法依次有:
$ a=q_0b+r_0,\quad 0\leq r_0<b$
$ b=q_1r_0+r_1,\quad 0\leq r_1<r_0$
$ r_0=q_2r_1+r_2,\quad 0\leq r_2<r_1$
如此下去
$ r_{i-2}=q_ir_{i-1}+r_i,\quad 0\leq r_i<r_{i-1},\ i=3,4,...$
这样我们便得到一个递减的序列\({r_i}\)
即:\(r_0>r_1>r_2... \geqslant 0\)
也就是说到某一步(比如第n步)有\(r_n=0\)
这时我们就有\(r_{n-2}=q_nr_{n-1}\),即\(r_{n-1}\vert r_{n-2}\)
利用定理A:
\((a,b)=(b,r_0)=(r_0,r_1)\)
\(=\ldots=(r_{i-1},r_i)=\ldots=(r_{n-3},r_{n-2})\)
\(=(r_{n-2},r_{n-1})=r_{n-1}\)
def egcd(a, b):
"""
扩展欧几里得算法
返回 (gcd, x, y) 使得 a*x + b*y = gcd(a, b)
"""
if a == 0:
return (b, 0, 1)
else:
g, y, x = egcd(b % a, a)
return (g, x - (b // a) * y, y)
辗转相除法的拓展
辗转相除法的进一步扩展
分析上述辗转除法可以发现:
\(r_0=a-q_0b=x_0a+y_0b(x_0=1,y_0=-q_0)\)
\(r_1=b-q_1r_0=q_1a+(1+q_0q_1)b=x_1a+y_1b(x_1=q_1,y_1=1+q_0q_1)\)
利用归纳逆推法,不难发现对任意\(r_i(0\leq i\leq n-1)\),都存在\(x_i,y_i\)满足:\(r_i=x_ia+y_ib\)
而且$ r_i=r_{i-2}-q_ir_{i-1}=x_{i-2}a+y_{i-2}b-q_i(x_{i-1}a+y_{i-1}b)=(x_{i-2}-q_ix_{i-1})a+(y_{i-2}-q_iy_{i-1})b$
$ x_i=x_{i-2}-q_ix_{i-1},y_i=y_{i-2}-q_iy_{i-1}$
\(X_{-2}=1,X_{-1}=0,Y_{-2}=0,Y_{-1}=1\)
\((x_0,y_0),(x_1,y_1),(x_2,y_2),…,(x_{n-1},y_{n-1})\)
\((a,b)=r_{n-1}=x_{n-1}a+y_{n-1}b\)
定理:对任意两个(正)整数\(a\),\(b\),都存在整数\(x\),\(y\),使得:
\((a,b)=xa+yb\)
推论:(1) 设\(d\)是\(a\)和\(b\)的任一公因子,则\(d|(a,b)\)
(2) 设\(a_1\),\(\ldots\),\(a_n\)是\(n\)个整数,则存在整数\(u_1,\ldots,u_n\)满足:
\((a_1,\ldots,a_n)=u_1a_1+\ldots+u_na_n\)
def mod_inverse(a: int, m: int) -> int:
"""
拓展欧几里得算法求模逆元
"""
if a < 0:
a = a % m
original_m = m
x0, x1 = 0, 1
while a > 1:
quotient = a // m
a, m = m, a % m
x0, x1 = x1 - quotient * x0, x0
if x1 < 0:
x1 += original_m
return x1
整数的唯一分解定理
素数:一个大于\(1\)的正整数\(p\),如果仅以\(1\)和它自身作为其因子,则称\(p\)为素数
复合数:大于\(1\)的非素的自然数,称之为复合数
互素:给定两个整数\(a,b\),如果\((a,b)=1\),则称\(a,b\)互素
关于素数的结果
定理A:设\(p\)为素数,\(a,b\)为整数,若\(p|ab\),则\(p|a\)或\(p|b\)
定理B:(唯一分解定理)
任一不为\(1\)的正整数\(n\)均可唯一的表示为:\(n=p_1^{a_1} p_2^{a_2} p_3^{a_3} \cdots p_t^{a_t}\)
这里$ p_1<p_2<p_3<\cdots <p_t\(,\)a_1,\cdots,a_t\(为自然数,上式称为\)n\(的标准分解式
正整数\)n\(分解的存在性,正整数\)n$分解的唯一性

浙公网安备 33010602011771号