鬼谷子难题的完全解!

 鬼谷子难题的完全解!

   一日,鬼谷子在2--100这99个数字中选了2个数字,然后把它们的和告诉了庞涓,把积告诉了孙膑。当然,庞涓不知道积是多少,孙膑不知道和是多少。 第二日,庞涓遇见孙膑很傲慢的对孙膑说:"虽然我不知道这两个数是多少但是我肯定你也不知道。"孙膑立刻还击道:"本来我不知道的,但是现在我知道这两个数是多少了。"庞涓想了一 会,说道:"现在我也知道这两个数是多少了。"   
  请问这二个数各是多少?

设所求两个数为X和Y,两数之和为C,两数之积为D。即孙膑拿到的数为C,庞涓拿到的数为D。。。

现在对庞涓和孙膑两个人的对话逐句进行分析:

1、庞涓对孙膑说:虽然我不知道这两个数是多少
此句说明了庞涓拿到的和数C必定大于5,即和数起码可拆分成两个不同的自然数对。(此句的分析对于此题的解意义不大)

2、庞涓接着对孙膑说:但是我肯定你也不知道
此句说明:C不能被拆分成两个质数的和。这也说明了D至少有3个以上的质数因子。
编程可得以下的数(200以内)不能被拆分为两个100以内的质数之和,即C的可能值为:
11 17 23 27 29 35 37 41 47 51 53 57 59 65 67 71 77 79 83 87 89 93 95 97 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 174 175 177 179 181 182 183 184 185 187 188 189 190 191 192 193 195 196 197 198 199

我们假设积数D只有3个质数因子,那么:C=1个合数(假设为X)+1个质数(假设为Y)。

由于X和Y均是100以内的数,那么Y必定是小于50的质数,否则积D只有一组解(X*Y)。而且,两数之和C必定小于55(因为任何大于等于55的数均可以拆成53加上一个2或2以上的数,当两数的乘积D有一个53的因子时,要保证X和Y均小于100,那么此时两数的乘积D只有一种解法,即X=53,Y=C-53)。那么C的可能值应为:
11 17 23 27 29 35 37 41 47 51 53

由上面C的范围可知,C是一个奇数。要使C为奇数,要么X为偶数,要么Y=2。如果X为偶数,那么2必定是X的质数因子,也即是D的3个质数因子中,有一个是2。
那么C的结果可分为4种可能:

①2的平方+质数1(小于50)
②质数1的平方+2(不难看出,质数1小于10,否则X的值将大于100)
③2×质数1(除2之外的质数,且小于50)+质数2(可能等于质数1,且小于50)
④质数1×质数2(不等于质数1)+2

①2的平方+质数1(小于50),则C值在上面范围内的值有:
11 17 23 27 35 41 47 51

②质数1×质数1(小于10)+2,则C值在上面范围内的值有:
11 27 51

③质数1×质数2+2,则C值在上面范围内的值有:
17 23 35 41 53
排除后,解为空

④2×质数1(除2之外的质数,且小于50)+质数2(小于50),则C值在上面范围内的值有:
17 29 37 41 11 27 51 17 29 41 53 17 37 23 27 35 47 51 23 27 51 29 41 53 29 37 35 51 37 41 53 47 51 47 51 53 53
排除后,解为空:

3、孙膑对庞涓说:本来我不知道的
此句说明了庞涓猜得没错,孙膑的积数D必定是一个合数和一个质数相乘的结果,且合数至少有两个或两个以上的质数因子。

4、孙膑对庞涓说:但是现在我知道这两个数是多少了
此句也是关键的一句,说明了孙膑能够将积数所能拆分的数对进行分析,找到唯一一组正确的数对。排除的根据就是:每一组数对之和如果不在2中分析所列出来的范围内,即可将该数对排除。

说明:庞涓所拿到的两数之积D能够拆分成两个数相乘,且这两个数的和C在1中所求的可能值范围内,关键是这样的两个数只有一组,这样,B才能排除其他可能的解,而找到正确的答案。

仍然根据上面的4点分析结果往下分析:

①2的平方+质数1(小于50),则C值在上面范围内的值有:
11 17 23 27 35 41 47 51
排除2×质数1+2的和在1中C值范围内的数,因为这个表达式所求出来的和为偶数,偶数都可以拆分成两个质数的和,因此C值的范围仍为:
11 17 23 27 35 41 47 51

②质数1×质数1(小于10)+2,则C值在上面范围内的值有:
11 27 51
排除2×质数1+质数1的和在1中C值范围内的数,这个表达式所求出来的和都可以拆分成两个质数的和,因此C值的范围仍为:
11 27 51

③质数1×质数2+2,则C值在上面范围内的值有:
17 23 35 41 53
排除2×质数1+质数2的和以及2×质数2+质数1的和至少有一个出现在1中C值范围内的数,经过计算,C值为空

④2×质数1(除2之外的质数,且小于50)+质数2(小于50),则C值在上面范围内的值有:
17 29 37 41 11 27 51 17 29 41 53 17 37 23 27 35 47 51 23 27 51 29 41 53 29 37 35 51 37 41 53 47 51 47 51 53 53
排除2×质数2+质数1的和以及质数1×质数2+2的和(在此和数小于102的情况下)至少有一个出现在1中C值范围内的数。经过排除后,C值的范围为:
51 41 47 51 41 53 57 51 53 51 47 53

5、孙膑听到庞涓说他知道了,然后就说:“现在我也知道这两个数是多少了”。

说明:在和数C不变的情况下,只有一个对应的积D能够根据前面的条件求出最终的解。

即排除4中所求出的①②③④中所有重复的数,那么和数C的解可能为:

17 23 35

D不可能存在4个或4个以上的质数因子。。。这一点就不证明了。。

综上所述,C的解为:17 23 35
X、Y共有3组解,分别为:
4、13   4、19    4、31

上面所有的计算结果均是通过编程进行计算的,应该不会有解被遗漏掉。有什么疑问或见解,请给我留言。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值