这个问题,怪就怪在没有已知数,好像很难。其实,仔细看明问题,经过一番分析,用算术知识便能解答。
关键在于:甲所说的“你一定不知道我手中的p”意味着什么。
它意味着p一定不能写成两个素数的和。
因为p=a+b,要是a、b都是素数,那么,乙手中拿到的q,就有可能是ab,要是q=ab,q就只有一种分解因子的方法,乙便知道手中的p了。
注意!甲断定,乙一定不知道p。这就是说乙手里拿的q,一定不是两个素数的积。也就是说甲自己拿到的p,不是两个素数的。
这样,乙就可以一个一个地检查,在4到40之中,把不能分成两个素数的和的数,全部找出来。它们是:
11、17、23、27、29、35、37。
现在,乙已经知道甲手中的不外乎是这7个数了。
那么,甲、乙手里是什么数时,乙能准确地说出甲手中的p,同时甲又能准确地说出乙手里的q呢?
先看11。
要是乙手里是18、24或者28,那么,因为
18=2×9=3×6,只有2+9在这7个数之中;
24=3×8=2×12=4×6,只有3+8在这7个数之中;
28=4×7=2×14,只有4+7在这7个数之中;
可见,乙手里拿到18、24或者28,都能断定甲手中是11;可是这时,甲却不能断定乙手里是18,还是24,还是28。
所以,甲手里不是11。
再看23。
130=10×13=5×26=2×65,只有10+13在这7个数之中;
126=14×9=7x18=……只有14+9在这7个数之中。
可见乙手里拿到130或者126,都能断定甲手里是23;可是这时,甲却不能断定乙手里是130,还是126。
所以,甲手里不是23。
同样的道理,甲手里不是27,不是29,不是35,不是37。最后,只剩下一种可能:甲手里拿到了17。
甲手里的p是17,乙手里可能拿到:
30=2×15,42=3×14,60=5×12,66=6×11,
70=7×10,72=8×9,52=4×13。
要是乙拿到30,30=5×6,5+6=11,乙就不能断定甲有到的是11,还是17。
所以,乙拿到的不是30。
同样的道理,乙拿到的不是42,不是60,也不是66、70、72。最后,只剩下一种可能:乙拿到的是52。
52=4×13=2×26。因为2+26=28,不在这7个数之中,所以乙可以断定甲拿到了17。
结果,这个方程的两个根是4和13。
以上解决问题的方法叫做
枚举法
,又叫做
穷举法
,就是把各种可能加以分析,从中找出解答。