在计算最大公约数和最小公倍数时,下面这个算法为啥最小公倍数不能成功执行
Dim m As Long, n As Long, r As Long, t As Long
Dim sum As Long
m = Val(TextBox1.Text)
n = Val(TextBox2.Text)
If m <= 0 Or n <= 0 Then
MsgBox("输入数据出错")
End
End If
If m < n Then
t = m
m = n
n = t
t = m * n
End If
Do
r = m Mod n
m = n
n = r
Loop While r <> 0
sum = t / m
TextBox3.Text = CStr(m)
TextBox4.Text = CStr(sum)
Dim m As Long, n As Long, r As Long, t As Long
Dim sum As Long
m = Val(TextBox1.Text)
n = Val(TextBox2.Text)
If m <= 0 Or n <= 0 Then
MsgBox("输入数据出错")
End
End If
If m < n Then
t = m
m = n
n = t
t = m * n
End If
Do
r = m Mod n
m = n
n = r
Loop While r <> 0
sum = t / m
TextBox3.Text = CStr(m)
TextBox4.Text = CStr(sum)
Dim m As Long, n As Long, r As Long, t As Long
m = Val(TextBox1.Text)
n = Val(TextBox2.Text) TextBox3.Text = GCD(m, n)
TextBox4.Text = LMD(m, n) End Sub 'M,N>0
'求最大公约数
Public Function GCD(ByVal M As Long, ByVal N As Long) As Long
Dim t As Long
GCD = M
Do
t = GCD Mod N
GCD = N
N = t
Loop Until t = 0
End Function '求最小公倍数
Public Function LMD(ByVal M As Long, ByVal N As Long) As Long
LMD = M * N \ GCD(M, N)
End Function