“答案是,二十三。”

“三三数之剩二,置一百四十;五五数之剩三,置六十三,七七数之剩二,置三十,并之。得二百三十三,以二百一十减之,即得。凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一,则置十五;一百六以上以一百五减之即得。”

这是《孙子算经》里的答案。

意思就是根据问题“有一个整数,除以3会余2、除以5会余3、除以7会余2”,我们可以先找到三个数。

这题目中有三个条件——

“除以3会余2”

“除以5会余3”

“除以7会余2”

那我们就一个一个条件分解开来。

先求在假设其中两个条件能被整除的情况下,除以另外一个条件余1的数。

第一个数能同时被5和7整除,但除以3余1,就是70。

第二个数能同时被3和7整除,但除以5余1,就是21。

第三个数能同时被3和5整除,但除以7余1,就是15。

简单点说,就是除以3余多少个1,就加上多少个70,除以5余多少个1,就加上多少个21,除以7余多少个1,就加上多少个15。

再回到题目条件“除以3会余2、除以5会余3、除以7会余2”。

那么(70 70),(21 21 21),(15 15)。

便会得出140,63,30三个数,三个数再相加,相当于三个条件相加,便能得“233”,也就是233这个数同时满足这三个条件。

但因为求最小值,用“233”减去“3*5*7”乘以一个倍数,却少于“233”的最大值,即“3*5*7*2=210”,233减去210,便能得23。

《孙子算经》里的方法,用古代数学的思维去理解其实是很繁琐的,但确实在当时那么艰难的数学大环境下,还能得出这样厉害的算法结论,古人的智慧,亦不可小觑。