因為:p<=q<=r<=s?
所以:1/p>=1/q>=1/r>=1/s
因為:1/p+1/q+1/r+1/s = 1
所以:1/p+1/p+1/p+1/p >=1 從而推出:p<=4
因為:p,q,r,s都是自然數,顯然,p必須大於1,所以 2<=p<=4 推出:1/2 >=1/p >=1/4
所以:1/q+1/r+1/s = 1 - 1/p ?從而推出: 1/2 <= 1/q + 1/r + 1/s ?所以:1/2<=1/q+1/q+1/q
從而得到:q<=6 ?所以:q = p to 6
到此,我們至少推斷出兩點:p = 2 to 4 ?;q = p to 6
因為p<=q,所以如果p=2,而且倒數和為1,所以q必須大於2,如果p>2,那麽q還是必須大於2,
所以可以確定:3<=q<=6 得到 1/3 >=1/q>=1/6,而1/2>=1/p>=1/4
所以:1/3+1/2>=1/q+1/p>=1/6+1/4 推出:5/6>=1/p+1/q>=5/12 那麽:1/6<=1/r+1/s<=7/12
因為:1/6<=1/r+1/s<=1/r+1/r ?所以:r<=12
因為:1/p>=1/q>=1/r>=1/s 而且1/p+1/q+1/r+1/s = 1 所以:1/s+1/s+1/s+1/s<=1/p+1/q+1/r+1/s=1
所以:s>=4
當p,q均取最小值的時候,p=2,q=3,那麽1/p+1/q=5/6,所以1/r +1/s =1/6 ,當且僅當r的值最接近6的時候,s取得最大值,也就是r=7的時候s取得最大值42.
到此,我們得出了 p = 2 to 4 , q = 3 to 6 ; r<=12;4<=s<=42
為了防止數學推算部分的遺漏,將r和s的取值範圍擴大,得到如下代碼:
Sub Comand2_Click()Dim p, q, r, s
For p = 2 To 4
For q = p To 6
For r = q To 100
For s = r To 1000
If (p * q * r + p * q * s + q * r * s + p * r * s) / (p * q * r * s) = 1 Then Print p & "," & q & "," & r & "," & s
Next s, r, q, p
End Sub