
汉高祖刘邦曾问大将韩信:“你看我能带多少兵?”韩信斜了刘邦一眼说:“你顶多能带十万兵吧!”汉高祖心中有三分不悦,心想:你竟敢小看我!“那你呢?”韩信傲气十足地说:“我呀,当然是多多益善啰!”刘邦心中又添了三分不高兴,勉强说:“将军如此大才,我很佩服.现在,我有一个小小的问题向将军请教,凭将军的大才,答起来一定不费吹灰之力的.” 韩信满不在乎地说:“可以可以.”刘邦狡黠地一笑,传令叫来一小队士兵隔墙站队,刘邦发令:“每三人站成一排.”队站好后,小队长进来报告:“最后一排只有二人.”刘邦又传令:“每五人站成一排.”小队长报告:“最后一排只有三人.”刘邦再传令:“每七人站成一排。”小队长报告:“最后一排只有二人.” 刘邦转脸问韩信:“敢问将军,这队士兵有多少人?”韩信脱口而出:“二十三人.”刘邦大惊,心中的不快已增至十分,心想,此人本事太大,我得想法找个岔子把他杀掉,免生后患.一面则佯装笑脸夸了几句,并问:“你是怎样算的?”韩信说:“臣幼得黄石公传授《孙子算经》,这孙子乃鬼谷子的弟子,算经中载有此题之算法,口诀是:
三人同行七十稀,
五树梅花开一枝,
七子团圆正月半,
除百零五便得知.”
刘邦出的这道题,可用现代语言这样表述:
“一个正整数,被 3除时余 2,被 5除时余 3,被 7除时余 2,如果这数不超过 100,求这个数.”
《孙子算经》中给出这类问题的解法:“三三数之剩二,则置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十;并之得二百三十三,以二百一十减之,即得.凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五,一百六以上,以一百五减之,即得.”用现代语言说明这个解法就是:
首先找出能被 5与 7整除而被 3除余 1的数 70,被 3与 7整除而被 5除余 1的数 21,被 ANOAHDIGITAL 10与 ANOAHDIGITAL 11整除而被 ANOAHDIGITAL 12除余 ANOAHDIGITAL 13的数 ANOAHDIGITAL 14.
所求数被 3除余 2,则取数 70× 2= 140, 140是被 5与 7整除而被 3除余 2的数.
所求数被 5除余 3,则取数 21× 3= 63, 63是被 3与 7整除而被 5除余 3的数.
所求数被 7除余 2,则取数 15× 2= 30, 30是被 3与 5整除而被 7除余 2的数.
又, 140+ 63+ 30= 233,由于 63与 30都能被 3整除,故 233与 140这两数被 3除的余数相同,都是余 ANOAHDIGITAL 10,同理 ANOAHDIGITAL 11与 ANOAHDIGITAL 12这两数被 ANOAHDIGITAL 13除的余数相同,都是 ANOAHDIGITAL 14, ANOAHDIGITAL 15与 ANOAHDIGITAL 16被 ANOAHDIGITAL 17除的余数相同,都是 ANOAHDIGITAL 18。所以 233是满足题目要求的一个数.
而 3、 5、 7的最小公倍数是 105,故 233加减 105的整数倍后被 3、 5、 7除的余数不会变,从而所得的数都能满足题目的要求.由于所求仅是一小队士兵的人数,这意味着人数不超过 100,所以用 233减去 105的 2倍得 23即是所求.
这个解法就是著名的中国剩余定理,又称孙子定理.