用VB求两个正整数的最大公约数和最小公倍数
用户输入两个数,最后显示出这2个数的最大公约数和最小公倍数别从百度知道和网上找答案发过来,我都看过了,有能力的情帮忙给写一下,非常感谢,加分感谢...
用户输入两个数,最后显示出这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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |