**和與積的問題**（英語：）是一道邏輯謎題，也稱為**不可能的謎題**（英語：），因為它的題面似乎缺乏足夠的解題信息。該謎題由漢斯·弗賴登塔爾得（英语：）在1969年首次發表
，而「不可能的謎題」這個名字是由馬丁·加德納所提出的。這個謎題是可以解開的，儘管略顯困難。還有很多與之類似的謎題。

謎題
--

註：這謎題有很多個版本。這裡用最原始的版本。  

X和Y是二個整數，大於1，和不大於100，而X嚴格小於Y (1 < X < Y, X+Y ≦100)。  

S和P是兩個數學家，邏輯都非常好。S知道兩者的和 X+Y。P知道兩者的積 XY。兩個人都知道上述的資訊後的對話如下：

* S說：「P不知道X和Y的值。」
* P說：「我知道X和Y的值了。」
* S說：「現在我也知道X和Y的值了。」

X和Y分別是多少？

解答
--

答案是 X 和 Y 分別是4和13，P一開始知道的乘積是52，S一開始知道的和是17。

一開始P不知道答案，因為有兩個可能性

52 = 4 × 13 = 2 × 26
而S也知道P不知道答案，因為所有加起來為17，符合規則的數字，相乘後的乘積都無法由乘積直接反推*X*和*Y*。
但S和P都可以根據對方的說明刪除一些不符合說明的解，因此得到答案。

詳解
--

### 數學家P和數學家S如何得到答案

#### 數學家P

P知道p=52，P猜測(2,26)和(4,13)可能是答案，因此P知道s=28或s=17。

若s=28:

可能答案會是(2,26)、(3,25)、(4,24)、(5,23)、(6,22)、(7,21)、(8,20)、(9,19)、(10,18)、(11,17)、(12,16)及(13,15)。
但若答案是(5,23)，5\*23的乘積（115）無法再表示為其他兩個大於一數字的乘積，因此若答案是(5,23)，P就知道答案了。
而若答案是(11,17)，11\*17的乘積（187）無法再表示為其他兩個大於一數字的乘積，因此若答案是(11,17)，P就知道答案。
P有可能知道X和Y的值，因此S不能斷定說「P不知道X和Y的值。」
若s=17:

可能答案會是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)。
每組數字中都至少有一個是合數，因此乘積可以表示為其他兩個大於一數字的乘積，S可以確定P不會知道正確的數字。
因此S可以說「P不知道X和Y的值。」
因此當S說「P不知道X和Y的值。」時，P可以刪除(2,26)，剩下的(4,13)就是答案。

#### 數學家S

S知道s=17，可能的答案有(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)。S知道p可能是30、42、52、60、66、70或72。

當P說：「我知道X和Y的值了。」時，S可以知道P依照對話可排除大部份的可能解，只留下一個可能解。

#### S模擬P的想法

情形1（p=30）
P知道p=30，可能的答案有(2,15)、(3,10)及(5,6)。P知道s可能是17、13或11。

若s=17:

S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」
若s=13:

S會猜可能答案是(2,11)、(3,10)、(4,9)、(5,8)及(6,7)，其中(2,11)都是質數。
若答案是(2,11)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」
若s=11:

S會猜可能答案是(2,9)、(3,8)、(4,7)及(5,6)。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」

因此若S說 「P不知道X和Y的值。」時，P可以排除(3,10)，可能答案有(2,15)及(5,6)，並不唯一。
情形2（p=42）
P知道p=42，可能的答案有(2,21)、(3,14)及(6,7)。P知道s可能是23、17或13。

若s=23:

S會猜可能答案是(2,21)、(3,20)、(4,19)、(5,18)、(6,17)、(7,16)、(8,15)、(9,14)、(10,13)及(11,12).
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」
若s=17:

S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」
若s=13:

S會猜可能答案是(2,11)、(3,10)、(4,9)、(5,8)及(6,7)，其中(2,11)都是質數。
若答案是(2,11)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」

因此若S說 「P不知道X和Y的值。」時，P可以排除(6,7)，可能答案有(2,21)及(3,14)，並不唯一。
情形3（p=52 )
參考數學家P實際的思考方式
情形4（p=60）
P知道p=60，可能的答案有(2,30)、(3,20)、(4,15)、(5,12)及(6,10)。P知道s可能是32、23、19、17或16。

若s=32:

根據哥德巴赫猜想及其实际验证表明，至少\scriptstyle 4\cdot 10^{{14}}以下的偶数都能表示成两个质数的和，因此32可以表示為二個質數的和（(3,29)和(13,19)）。
若答案是(3,29)或(13,19)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」
若s=23:

S會猜可能答案是(2,21)、(3,20)、(4,19)、(5,18)、(6,17)、(7,16)、(8,15)、(9,14)、(10,13)及(11,12)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」
若s=19:

S會猜可能答案是(2,17)、(3,16)、(4,15)、(5,14)、(6,13)、(7,12)、(8,11)及(9,10)，其中(2,17)都是質數。
若答案是(2,17)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」
若s=17:

S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」
若s=16:

根據哥德巴赫猜想及其实际验证表明，16可以表示為二個質數的和（(3,13)和(5,11)）。
若答案是(3,13)或(5,11)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」

因此若S說 「P不知道X和Y的值。」時，P可以排除(2,30), (4,15)及(6,10)，而可能答案有(3,20)及(5,12)，並不唯一。
情形5（p=66）
P知道p=66，可能的答案有(2,33)、(3,22)及(6,11)。P知道s可能是35、25或17。

若s=35:

S會猜可能答案是(2,33)、(3,32)、(4,31)、(5,30)、(6,29)、(7,28)、(8,27)、(9,26)、(10,25)、(11,24)、(12,23)、(13,22)、(14,21)、(15,20)、(16,19)及(17,18)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」
若s=25:

S會猜可能答案是(2,23)、(3,22)、(4,21)、(5,20)、(6,19)、(7,18)、(8,17)、(9,16)、(10,15)、(11,14)及(12,13)，其中(2,23)都是質數。
若答案是(2,23)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」
若s=17:

S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」

因此若S說 「P不知道X和Y的值。」時，P可以排除(3,22)，而可能答案有(2,33)及(6,11)，並不唯一。
情形6（p=70）
P知道p=70，可能的答案有(2,35)、(5,14)及(7,10)。P知道s可能是37、19或17。

若s=37:

S會猜可能答案是(2,35)、(3,34)、(4,33)、(5,32)、(6,31)、(7,30)、(8,29)、(9,28)、(10,27)、(11,26)、(12,25)、(13,24)、(14,23)、(15,22)、(16,21)、(17,20)及(18,19)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」
若s=19:

S會猜可能答案是(2,17)、(3,16)、(4,15)、(5,14)、(6,13)、(7,12)、(8,11)及(9,10)，其中(2,17)都是質數。
若答案是(2,17)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」
若s=17:

S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」

因此若S說 「P不知道X和Y的值。」時，P可以排除(5,14)，而可能答案有(2,35)及(7,10)，並不唯一。
情形7（p=72）
P知道p=72，可能的答案有(2,36)、(3,24)、(4,18)、(6,12)及(8,9)。P知道s可能是38、27、22、18或17。

若s=38:

根據哥德巴赫猜想及其实际验证表明，38可以表示為二個質數的和（(7,31)）。
若答案是(7,31)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」
若s=27:

S會猜可能答案是(2,25)、(3,24)、(4,23)、(5,22)、(6,21)、(7,20)、(8,19)、(9,18)、(10,17)、(11,16)、(12,15)及(13,14)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」
若s=22:

根據哥德巴赫猜想及其实际验证表明，22可以表示為二個質數的和（(3,19)或(5,17)）。
若答案是(3,19)或(5,17)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」
若s=18:

根據哥德巴赫猜想及其实际验证表明，18可以表示為二個質數的和（(5,13)或(7,11)）。
若答案是(5,13)或(7,11)，P就知道正確數字了。
S不能說「P不知道X和Y的值。」
若s=17:

S會猜可能答案是(2,15)、(3,14)、(4,13)、(5,12)、(6,11)、(7,10)及(8,9)，每組數字中都至少有一個是合數。
S可以確定P不會知道正確的數字。
S可以說「P不知道X和Y的值。」

因此若S說 「P不知道X和Y的值。」時，P可以排除(2,36)、(4,18)和(6,12)，而可能答案有(3,24)及(8,9)，並不唯一。
只有情形3最後只有一個可能答案，因此S可以確定(4,13)是正確答案。

### 讀者如何得到答案

問題給出的條件是

X, Y 是兩個整數，適合1 < X < Y，X + Y ≤ 100。（條件1）
令兩數之和為s，兩數之積為p。以下提到的(x,y)，都指符合條件1的一對整數x和y。

從S的第一句話，p可分解成多於一個(x,y)。而且S雖不知道p的值，但檢查了s可分拆成的所有(x,y)後，其積xy都有多於一個分解符合條件1，因此S可以肯定P不知道X, Y的值。（條件2）

從P的第一句話，P知道p的值，也知道s符合條件2。檢查了p可分解成的所有(x,y)，只有一個的和x + y符合條件2，所以P得到X, Y的值。（條件3）

從S的第二句話，S知道s的值，也知道P的分析，推出p符合條件3。檢查了s可分拆成的所有(x,y)，只有一個的積xy符合條件3，所以S得到X, Y的值。（條件4）

按條件1，s的可能值最小是2 + 3 = 5，最大是100。以下找出s的所有符合條件2的可能值：

* 若(x,y)都是質數，則xy有唯一分解，故s不可分拆為（符合條件1的）質數對。排除不小於8的偶數，及2+奇質數。（按照哥德巴赫猜想，大於2的偶數都是兩個質數的和，且對不太大的偶數都成立。不過6不是兩個相異質數的和。）
* 若xy = q3，q是質數，則xy有唯一分解(q,q2)，故s不可能分拆為(q,q2)。排除6 = 2 + 22。
* 若xy有大於50的質因數q，由於y < 100，因此y = q，即xy有唯一分解(x,q)，故s不可能分拆為(x,53)。排除不小於53 + 2 = 55的整數。
* 若xy = 2q2，q > 10是質數，由於y < 100，y不等於q2，因此xy有唯一分解(q,2q)，故s不可能為3q。排除51 = 3·17。

s的餘下的可能值為

11, 17, 23, 27, 35, 37, 41, 47, 53. (\*)
以上的可能值都符合條件2：因為s是奇數，任何分拆出的(x,y)必為一個奇數a和一個偶數2b。

* 當b = 1時，a是合數，a ≤ 53 - 2 = 51，故有質因子q ≤ 7，xy = 2a 可分解成a/q和2q，易知其和小於100，符合條件1。
* 當b > 1時，

若a ≠ b，則xy = 2ab 也可分解成2a和b。因為a ≤ 53 - 4 = 49，
2a + b = a + 2b + (a - b) = s + (a - b) ≤ 53 + (49 - 2) = 100
符合條件1；
若a = b時，a是合數（a不是大於10的質數，也不是小於10的質數，因其3倍都不是s的可能值），a = s/3 ≤ 53/3 < 18，故有質因子3，則xy = 2a2也可分解成2a/3和3a，
2a/3 + 3a < 66
符合條件1。（也可直接驗證，此時s的可能值是3a，而(\*)中只有27是3的倍數。）
以下檢查s的符合條件2的可能值，即(\*)中的值，是否滿足條件4：

注意到若p = 2k q，其中q是奇質數，則p僅有一個（符合條件1的）分解2k和q，使其和是奇數，故此若其和2k + q符合條件2，則p滿足條件3。

* 11可分拆成(4,7)和(8,3)，從上得知兩者的積28和24都符合條件3，故11不滿足條件4。

* 類似地，23可分拆成(4,19)和(16,7)，27可分拆成(4,23)和(8,19)，35可分拆成(4,31)和(16,19)，37可分拆成(8,29)和(5,32)，47可分拆成(4,43)和(16,31)，故23, 27, 35, 37, 47都不滿足條件4。

餘下需要檢查s的可能值 17, 41, 53。17可分拆成(4,13)，41可分拆成(4,37)，53可分拆成(16,37)，這些分拆的積都符合條件3。

* 41分拆成(2,39)，其積78分解成(6,13)，和為19；其積分解成(3,26)，和為29，都不符合條件2，故(2,39)的積符合條件3，41不滿足條件4。

* 53分拆成(5,48)，其積240分解成(15,16)，和為31；其積分解成(3,80)，和為83，都不符合條件2，故(5,48)的積符合條件3，53不滿足條件4。

檢查17的各分拆：

* (2,15)的積可分解為(5,6)，其和11符合條件2，故(2,15)不符合條件3。
* 類似地，(3,14)的積可分解為(2,21)，和為23；(5,12)的積可分解為(3,20)，和為23；(6,11)的積可分解為(2,33)，和為35；(7,10)的積可分解為(2,35)，和為37；(8,9)的積可分解為(3,24)，和為27。各積的上述另一分解的和都符合條件2，故各積都不符合條件3。

因此17分拆成(4,13)，其積才符合條件3，故17滿足條件4。

由於17是(\*)中唯一滿足滿件4的值，得出s = 17, X = 4, Y = 13。

相關條目
----

* 謝麗爾的生日
* 三個杯子問題

外部連結
----

* Puzzles by John Burkardt
* The Impossible Problem by Torsten Sillke（页面存档备份，存于）
* Two Mathematicians Problem on mathforum（页面存档备份，存于）
* Model Checking Sum and Product（页面存档备份，存于）
* Survey: The Freudenthal problem and its ramifications（页面存档备份，存于）