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

本回答被提问者采纳

vb编程实现用辗转相除法求两个数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的因数 第四...

vb求四个数的最大公约数和最小公倍数怎么写
求两个数a,b的最大公约数有两种方法:分解成质因数法,辗转相除法。用(a,b)表示a,b的最大公约数,则a,b的最小公倍数[a,b]=ab\/(a,b).a,b,c的最大公约数=((a,b),c),a,b,c的最小公倍数=[a,b]c\/((a,b),c),以此类推。可以吗?

通过程序设计求解两个整数的最大公约数
1、辗转相除法 两整数a和b:a%b得余数c。若c=0,则b即为两数的最大公约数,结束。若c≠0,则a=b,b=c,再回去执行。2、相减法 两整数a和b:若a>b,则a=a-b。若a<b,则b=b-a。若a=b,则a(或b)即为两数的最大公约数,结束。若a≠b,则再回去执行。3、穷举法:i=a b中...

谁来解释一下用辗转相除法求最两个数的最大公约数原理
辗转相除法求最大公约数原理:设两数为a、b(a>b),用gcd(a,b)表示a,b的最大公约数,r=a (mod b) 为a除以b的余数,k为a除以b的商,即a÷b=k...r。辗转相除法即是要证明gcd(a,b)=gcd(b,r)。第一步:令c=gcd(a,b),则设a=mc,b=nc 第二步:根据前提可知r =a-kb=mc-...

用辗转相除法能够求得两个整数的最大公约数
现在我们用代码来实现这个算法。给定的两个整数是:48和36。它们的最大公约数是:12。所以,使用辗转相除法,我们找到了整数48和36的最大公约数是12。学数学好处 数学好的人,相对比较聪明,领悟力较高,在对人处事上能体现出优势。思维比较敏捷,方法点子会较多。数学是其他学科的基础,学好数学的人...

用VB编程:求两个整数的最小公倍数。
方法简述:最小公倍数等于两个正整数相乘再除以两个正整数的最大公约数(即a*b\/g)。说明求两个正整数最大公约数,自己查找。vb程序代码如下:Private Sub Command1_Click()Dim m As Integer, n As Integer Dim g As Integer dim t1 as integer,t2 as integer m = InputBox("第一个数")n...

用辗转相除法求2个数的最大公约数,怎么做?
辗转相除法,也称欧几里得算法,是一种用于求解两个正整数最大公约数的经典方法。下面是如何用C语言中的自定义函数divisor实现这一过程:首先,定义一个名为divisor的函数,它接受两个整数a和b作为参数:`int divisor(int a, int b) {`为了确保a大于或等于b,我们先比较它们的值:`if(a < b) {`交...

在用辗转相除法求两个正整数a,b(a>b)的最大公约数时,得到表达式a=nb+r...
r是余数,所以范围是[0,b)

下面的程序是用辗转相除法求两个正整数的最大公约数,请填空.
include <stdlib.h> int main(){ int a, b,r;scanf("%d %d", &a, &b);while (b != 0)\/\/当其中一个数为0,另一个数就是两数的最大公约数 { r = a%b;a = b;b = r;} printf("最大公约数%d\\n", a);system("pause");} 例子:105252 252%105=42;105%42=21;42...

编写两个函数,分别求最大公约数和最小公倍数python
具体如下,结果使用的print输出,也可改为return。最大公约数:最大公约数 最小公倍数:最小公倍数

相似回答