vb编程实现用辗转相除法求两个数a和b的最大公约数

如题所述

辗转相除法求两个数a和b的最大公约程序如下:

程式解析如下:

设两数为a、b(b<a),用gcd(a,b)表示a,b的最大公约数,r=a mod b 为a除以b以后的余数,辗转相除法即是要证明gcd(a,b)=gcd(b,r)。

        第一步:令c=gcd(a,b),则设a=mc,b=nc

        第二步:根据前提可知r =a-kb=mc-knc=(m-kn)c

        第三步:根据第二步结果可知c也是r的因数

        第四步:可以断定m-kn与n互素【否则,可设m-kn=xd,n=yd,(d>1),则m=kn+xd=kyd+xd=(ky+x)d,则a=mc=(ky+x)dc,b=nc=ycd,故a与b最大公约数成为cd,而非c】

       从而可知gcd(b,r)=c,继而gcd(a,b)=gcd(b,r)。

  证毕。

扩展资料

VB语言特点

结构化的程序设计语言:Visual Basic 6.0具有丰富的数据类型和众多的内部函数。其采用模块化和结构化程序设计语言,结构清晰,语法简单,容易学习。

强大的数据库功能:Visual Basic 6.0利用数据控件可以访问Access、FoxPro等多种数据库系统,也可以访问Excel、Lotus等多种电子表格。

ActiveX技术:ActiveX发展了原有的OLE技术,使开发人员摆脱了特定语言的束缚,方便地使用其他应用程序提供的功能,使Visual Basic 6.0能够开发集声音、图像、动画、字处理、电子表格、Web等对象于一体的应用程序。

网络功能:Visual Basic 6.0提供的DHTML(动态HTML)设计工具可以使开发者动态地创建和编辑Web页面,使用户能开发出多功能的网络应用软件。

参考资料来源:百度百科—Visual Basic

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-17
Private Sub Command1_Click()
  Dim a As Double, b As Double, c As Double, d As Double, r As Double
  a = Val(InputBox("请输入第一个数!"))
  b = Val(InputBox("请输入第二个数!"))
  If a > b Then
     c = a
     d = b
  Else
     c = b
     d = a
  End If
  Do Until c Mod d = 0
     r = c Mod d
     c = d
     d = r
  Loop
  MsgBox a & "和" & b & " 最大公约数为:" & d
End Sub

本回答被提问者采纳
相似回答