(选自《数论妙趣——数学女王的盛情款待》第五章 大师的发明)
让对方想一个小于1000的正整数,相继用7,11,13去除它,把3个余数告诉你,你很快就能说出他想的数是什么。
做到这一点其实并不难。你只需把3个余数分别乘以“魔数”715,364,924,再把所得的积相加,从中尽量减去1001的整数倍,得到的差就是他所想的数。
例如,对方告诉你的余数是5,6,3。
751×5+364×6+924×3=8531,8531-8×1001=523,就是他所想的数。
在作出解释之前,有必要学点“同余”知识,它是数学大师号称“数学王子”的高斯发明的。
在数论里,我们时常要测试一个数n能否被另一个数m整除。此时,商数并不重要,感兴趣的仅仅是余数以及使之为0(即整除)的条件。高斯为此发明了一种非常紧凑而高度有效的记号,不考虑无关因素,使我们得到了有关整数与可除性的全新且熠熠发光的概念——同余。
例如,用13除31,通常写作31÷13=2……5,而用同余的概念,可以记作31≡5
同余式与方程有许多相似的性质。
以31≡5
两边同时加上3,得34≡8
两边同时减去5,得26≡0
两边同时乘以4,得124≡20
两边同时各自平方,得312≡52
与方程不同,仅当一个数与模互质时,才能用它去除同余式的两边。所以,即便有40≡10
同余式在处理乘幂时非常有用。例如:
证明97104-1恰能被105整除。
由97≡1
97104≡1
由97≡2
97104≡1
由97≡-1
97104≡1
把上面三式结合起来,由于3,5,7没有公因子,得
97104≡1
97104-1≡0
即97104-1恰能被105整除。
现在来看前面戏法中的魔数715,364,924。
设x是选定的未知数,a,b,c是x除以7,11,13的余数。于是有:
x≡a
x≡b
x≡c
移项,得
715(x-a)≡0
364(x-b)≡0
924(x-c)≡0
因为
(1)式中的715能被11,13整除,从而(1)式能被7,11,13整除,即能被7×11×13=1001整除;
(2)式中的364能被7,13整除,从而(2)式能被7,11,13整除,即能被7×11×13=1001整除;
(3)式中的924能被7,11整除,从而(3)式能被7,11,13整除,即能被7×11×13=1001整除。
对新模1001而言,上面3式相加,得
2003x-(715a+364b+924c)≡0
移项,得
2003x≡(715a+364b+924c)≡0
从2003x中减去1001的倍数2002x,得
x≡(715a+364b+924c)≡0
这样就得到用三个魔数和三个余数表达的x的值,只需尽量减去1001的倍数就可以了。
那么,三个魔数又是怎样得到的呢?715实际就是11与13的公倍数中被7除余1的数;364实际就是7与13的公倍数中被11除余1的数;924实际就是7与11的公倍数中被13除余1的数。
大家一定知道,在我国古代算书《孙子算经》和《算法统宗》中,就有类似的问题,可以互相参考借鉴。
同余式还有一个重要性质:如果一个同余式对好几个模都成立,则它对这些模的最小公倍数也成立。
利用这一性质,类似下面的问题很容易解决:
有一支部队的人数,不能被2,3,4,5,6,7,8,9,10,11,12整除,在每种情况下,都有一人剩下来。但是,却可以等分为13队。试问,这支部队至少有多少人?
设这支部队有x人。这时有同余式
x≡1
以及
x≡0
由于2,3,4,5,6,7,8,9,10,11,12的最小公倍数是27720,从而
x≡1
因此,x满足的首要条件是,x等于1或者1加上27720的整数倍,即
x=27720m+1
从27720≡4