从键盘上输入两个正整数M和N,求最大公因子. VB
3个回答
展开全部
你明白这种求公因数算法的思路就理解了。
这是辗转相除法
比如求
18
和
48
的最大公因数
第一部
大数除以小数取余数
48÷18=2……12
第二部
余数是零,结束运算,小数即为最大公因子;余数不是零,继续利用辗转相除法,小数除以余数再取余数
18÷12=1……6
第三步
如果余数是零,则计算结束,上步运算的除数即为最大公因子;否则继续利用辗转相除法,将上步的除数除以余数再取余数
12÷6=0
第四步,这个题目的余数是零,运算结束,最大公因子是上步中的除数6。
m,n不断交换,中间不分彼此,重要的是循环结束后的值
这是辗转相除法
比如求
18
和
48
的最大公因数
第一部
大数除以小数取余数
48÷18=2……12
第二部
余数是零,结束运算,小数即为最大公因子;余数不是零,继续利用辗转相除法,小数除以余数再取余数
18÷12=1……6
第三步
如果余数是零,则计算结束,上步运算的除数即为最大公因子;否则继续利用辗转相除法,将上步的除数除以余数再取余数
12÷6=0
第四步,这个题目的余数是零,运算结束,最大公因子是上步中的除数6。
m,n不断交换,中间不分彼此,重要的是循环结束后的值
展开全部
Private
Sub
Form_Click()
Dim
m
As
Integer
Dim
n
As
Integer
m
=
InputBox("请输入M的值")
m
=
Val(m)
m1
=
m
n
=
InputBox("请输入N的值")
n
=
Val(n)
n1
=
n
Do
While
n
0
remin
=
m
Mod
n
m
=
n
n
=
remin
Loop
Print
m1
&
"和"
&
n1
&
"的公因子为"
&
m
'这样就用到m1和n1了
End
Sub
Sub
Form_Click()
Dim
m
As
Integer
Dim
n
As
Integer
m
=
InputBox("请输入M的值")
m
=
Val(m)
m1
=
m
n
=
InputBox("请输入N的值")
n
=
Val(n)
n1
=
n
Do
While
n
0
remin
=
m
Mod
n
m
=
n
n
=
remin
Loop
m1
&
"和"
&
n1
&
"的公因子为"
&
m
'这样就用到m1和n1了
End
Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Option Explicit
Private Sub Command1_Click()
Dim m As Integer
Dim n As Integer
Dim t As Integer, r As Integer, s As Integer
m = InputBox("请输入第一个数")
n = InputBox("请输入第二个数")
s = m * n
If m < n Then
t = m
m = n
n = t
End If
r = m Mod n
Do While r <> 0
m = n
n = r
r = m Mod n
Loop
Print "最大公约数:"; n
Print "最小公倍数:"; s / n
End Sub
Private Sub Command1_Click()
Dim m As Integer
Dim n As Integer
Dim t As Integer, r As Integer, s As Integer
m = InputBox("请输入第一个数")
n = InputBox("请输入第二个数")
s = m * n
If m < n Then
t = m
m = n
n = t
End If
r = m Mod n
Do While r <> 0
m = n
n = r
r = m Mod n
Loop
Print "最大公约数:"; n
Print "最小公倍数:"; s / n
End Sub
参考资料: http://www.bc-cn.net/bbs/dispbbs.asp?BoardID=6&replyID=111553&id=59862&skin=0
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询