一个二级结论

偶遇一算法题,原题链接,题干可简化为:

已知两个数m和n,m和n互素,求不能由这两个数线性表达(\(C = an + bm\),其中a,b均是自然数)的最大的整数\(L\)

提出结论:不可能有:\(L > nm - n - m\)。即:当\(C > nm + n + m\)时,一定有\(an+bm\)型表示。

该结论能极大程度上减少循环次数,降低本题难度。

证明如下:

首先先提出两个引理:

(1)裴蜀定理:当a和b互素时,一定有(u,v)整数对满足:\(au+bv = 1\);

(2)对于任意的整数a,一定有唯一的整数t,使得:\(x = a + bt,0 \leq x \leq b-1\)。这个引理的证明非常简单,结合周期性和取mod的思想非常显然。

假设\(C > nm - n - m\),由于裴蜀定理:有(u,v)使得:\(nu+mv = 1\),那么有:\(\(n(Cu)+m(Cv) = C\)\)

下面取:\(a = Cu + mt\),由于引理(2),很显然得出:一定存在\(t\),使得:\(0 \leq a \leq m-1\)

那么,相应地,取:\(b = Cv - nt\),于是有:

\[an + bm = n(Cu + mt) + m(Cv - nt) = n(Cu) + m(Cv) = C\]

于是,只要证明:\(0 \leq b\)即可,而:显然\(b \in Z\)

那么只要证明:\(b > -1\)

\[bm = C - an > nm - n -m - an \geq nm -n -m -(m-1)n = -m \Longrightarrow b > -1\]

综上,证毕 \(\square\)

证明启发自[elEvenxue]