把 1/a 拆分成三个不同单位分数的和,并且三个分母之和为最小的VB程序
Private Sub Command1_Click()'把 1/a 拆分成三个不同单位分数的和,并且三个分母之和为最小的程序代码
Dim n, a As Double
n = Val(Text1)
m = Val(11 * n)
a = Val(1 + n)
Do While a >= Val(n) And a <= 5 * n
b = Val(a + 1)
Do While b <= Val(6 * n)
u = Val(a * b * n)
v = Val(a * b - n * (a + b))
If Val(v) > 0 Then
c = Val(u / v)
If b < c And Val(u) - Val(v) * Int(Val(u / v)) = 0 Then
k = Val(a + b + c)
If k <= m Then
m = k
s = "{" & a & "," & b & "," & c & "}"
s2 = n & " " & m & " " & s & vbCrLf
s3 = s3 + 1
End If
End If
End If
b = Val(b + 1)
Loop
a = Val(a + 1)
Loop
If s3 > 0 Then
Text2 = s2 & "需要比较的解的个数为: " & s3 & "组"
Else
Text2 = "无解"
End If
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
End Sub






