这诗流传得非常广,所以如卖盐老板之流也都知道,而我的哥哥所告诉我的秘诀就是它。
是的,知道了它,这类的题目便可以机械地算了,将三除所得的余数去乘七十,五除所得的余数去乘二十一,七除所得的余数去乘十五,再把这三项乘积相加,如所得的和比一百零五小,那便是所求的答数。不然,则减去一百零五的倍数而得出比一百零五小的数来——这里所要求的只是一个最小的答数——例如三三数之剩一,五五数之剩四,七七数之剩三,那么,运算的程序便是:
70×1+21×4+15×3=70+84+45=199
199-105=94
若单只就实用或游戏说,熟记这秘诀已很够受用了,至于它是从哪儿来的,一般人哪管得这么多?但就数学的立场来说,这种知其然而不知其所以然的态度却没有多大的价值,并且即使熟记着这秘诀,所能应付的问题不过一百零五个,因为只限于三三,五五,七七三种数法。我们要默记这一百零五个答数并不是不可能,然而到得果真熟记着这一百零五个答数,那就更无意味了(见文末附注)。
所以我们第一要问,为什么这样就是对的?
要说明个中的理由,我们先记起算术里面关于倍数的两个定理:
(一)某数的倍数的倍数,还是某数的倍数——这正如我的哥哥的哥哥还是我的哥哥一般。
(二)某数的若干倍数的和,还是某数的倍数——这正如我的几个哥哥坐在一起,他们仍然是我的哥哥一般。
依了这两个定理来检讨上面的算法,设R3表示用三除所得的余数,R5和R7相应地表示用五除和用七除所得的余数,那么:
(一)七十是五和七的倍数,而是三的倍数多一,所以用R3去乘仍是五和七的倍数,而是三的倍数多R3。
(二)二十一是七和三的倍数,而是五的倍数多一,所以用R5去乘仍是七和三的倍数,而是五的倍数多R5。
(三)十五是三和五的倍数,而是七的倍数多一,所以用R7去乘仍是三和五的倍数,而是七的倍数多R7。
(四)所以这三项相加,就三说,是
70×R3+21×R5+15×R7=3的倍数+R3+3的倍数+3的倍数=3的倍数+R3。
若用三去除,所得的余数正是R3。就五说,是
70×R3+21×R5+15×R7=5的倍数+R5+5的倍数+5的倍数=5的倍数+R5。
若用五去除,所得的余数正是R5。就七说,是
70×R3+21×R5+15×R7=7的倍数+R7+7的倍数+7的倍数=7倍数+R7。
若用七去除,所得的余数正是R7。
这就可以证明我们如法炮制出来的数是合题的。至于在比一百零五大的时候,要减去它的倍数,使得数小于一百零五,这只因为适合于题目的答数本来无穷,只得取最小的一个做代表的缘故。一百零五本是三、五、七的最小公倍数,在这最小的答数上加入它的倍数,这是和除得的余数无关系的。
经过这样的证明,我们可以承认上面的算法是对了,但这还不够,我们第二要问,那七十、二十一和十五三个数含有怎样的性质?
七十是五和七的公倍数,而二十一是七和三的最小公倍数,十五是三和五的最小公倍数,为什么两个是最小公倍数而另一个却只是公倍数呢?
这个问题并不难回答,因为二十一用五除,十五用七除都恰好剩一,而五和七的最小公倍数“三十五”用三除却剩的是二,要七十用三除才剩一。所以这个解法的要点,是要求出三个数来,每一个都是三个除数中的两个的公倍数——最小公倍数是碰巧的——而同时是另一个除数的倍数多一。
这样,就到了第三步,我们要问,合于这种条件的数怎样求法?
这里且将清时黄宗宪所编《求一术通解》里面的方法摘抄在下面,我们来认识认识中国数学书的面目,也是一件趣事。