用VB求两个正整数的最大公约数和最小公倍数

来源:百度知道 编辑:UC知道 时间:2024/06/20 05:47:58
用户输入两个数,最后显示出这2个数的最大公约数和最小公倍数

别从百度知道和网上找答案发过来,我都看过了,有能力的情帮忙给写一下,非常感谢,加分感谢

Private Sub Form_Click()
Dim m As Long, n As Long
m = Val(InputBox("请输入第一个数:"))
n = Val(InputBox("请输入第二个数:"))

If m < 1 Or n < 1 Then MsgBox "两个数均需为正整数!": Exit Sub

MsgBox "最大公约数是" & MaxGys(m, n) & vbCrLf & "最小公倍数是" & MinGbs(m, n)

End Sub

Rem 求两个数的最大公约数
Private Function MaxGys(A As Long, B As Long)
Dim X As Long, Y As Long, K As Long
X = IIf(A >= B, A, B) 'x存入最大值
Y = IIf(A <= B, A, B) 'y 存入最小值
Do '辗转相除法
K = X Mod Y: If K = 0 Then Exit Do
X = Y: Y = K
Loop
MaxGys = Y
End Function

Rem 求两个数的最小公倍数
Private Function MinGbs(A As Long, B As Long)
MinGbs = A * B / MaxGys(A, B)
End Function