vb.net求最大公约数 vb中求最大公约数

VB中求最大公约数的方法求最大公约数的方法可以通过递减法来求 , 具体编程步骤如下:
Private Function gcd(x As Integer, y As Integer) As Integer
Dim div As Integer
If xy Then
div = x
Else
div = y
End If
While div1
If x Mod div = 0 And y Mod div = 0 Then
gcd = div
Exit Function
Else
div = div - 1
End If
Wend
gcd = 1
End Function
扩展资料:
最大公约数的求法:
(1)质因数分解法
质因数分解法:把每个数分别分解质因数,再把各数中的全部公有质因数提取出来连乘,所得的积就是这几个数的最大公约数 。
例如:求24和60的最大公约数 , 先分解质因数,得24=2×2×2×3,60=2×2×3×5,24与60的全部公有的质因数是2、2、3 , 它们的积是2×2×3=12 , 所以,(24,60)=12 。
把几个数先分别分解质因数,再把各数中的全部公有的质因数和独有的质因数提取出来连乘,所得的积就是这几个数的最小公倍数 。
例如:求6和15的最小公倍数 。先分解质因数,得6=2×3 , 15=3×5 , 6和15的全部公有的质因数是3,6独有质因数是2,15独有的质因数是5,2×3×5=30,30里面包含6的全部质因数2和3,还包含了15的全部质因数3和5,且30是6和15的公倍数中最小的一个,所以[6,15]=30 。
(2)短除法
短除法:短除法求最大公约数,先用这几个数的公约数连续去除,一直除到所有的商互质为止,然后把所有的除数连乘起来,所得的积就是这几个数的最大公约数 。
短除法求最小公倍数,先用这几个数的公约数去除每个数,再用部分数的公约数去除,并把不能整除的数移下来,一直除到所有的商中每两个数都是互质的为止,然后把所有的除数和商连乘起来,所得的积就是这几个数的最小公倍数,例如,求12、15、18的最小公倍数 。
短除法的本质就是质因数分解法,只是将质因数分解用短除符号来进行 。
短除符号就是除号倒过来 。短除就是在除法中写除数的地方写两个数共有的质因数,然后落下两个数被公有质因数整除的商,之后再除 , 以此类推,直到结果互质为止(两个数互质) 。
而在用短除计算多个数时 , 对其中任意两个数存在的因数都要算出,其它没有这个因数的数则原样落下 。直到剩下每两个都是互质关系 。
求最大公因数便乘一边,求最小公倍数便乘一圈 。
参考资料来源:百度百科-最大公约数
VB.NET从键盘输入两个正数,求最大公约数~怎么作?最好给个中文说明!程序调试通过 , 附上截图 。代码如下,欢迎交流 。
采用的方法是辗除法 。
’-------------------------------------
Public Class Form1
Private Sub test()
Dim a As Integer
Dim b As Integer
Try
a = CInt(TextBox1.Text)
b = CInt(TextBox2.Text)
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
Dim r As Integer = findTheNumber(a, b)
TextBox3.Text = r.ToString
End Sub
Private Function findTheNumber(ByVal a As Integer, ByVal b As Integer) As Integer
If ab Then
Dim temp As Integer = a
a = b
b = temp
End If
'辗除法
Dim temp_a As Integer
While b0
temp_a = a Mod b
a = b
b = temp_a
End While
Return a
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
test()
End Sub
End Class
vb.net 求两个自然数的最大公约数和最小公倍数 辗转相乘法 。最大公约数
do until a=b
if ab then
a=a-b
elseif ba then
b=b-a
end if
loop
msgbox (a)
最小公倍数
c = a
22:
If a Mod b = 0 Or b Mod a = 0 Then
If ab Then
MsgBox(a)
Else
MsgBox(b)
End If
Else
a = ac
GoTo 22
End If
辗转相乘法是什么玩意vb.net求最大公约数?
【vb.net求最大公约数 vb中求最大公约数】vb.net求最大公约数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vb中求最大公约数、vb.net求最大公约数的信息别忘了在本站进行查找喔 。

    推荐阅读