计算两个自然数m和n的最大公约数。

计算两个自然数m和n的最大公约数。

方法一:分别求出m和n的约数,然后找m,n共有的最大的约数即可。(定义法)
方法二:最大公约数*最小公倍数=M*N
方法三:(更相减损)
(推荐!!)找m和n中的较大值去和另一个数最差,得到的数再和减数作比较,
若二者相等证明该数为最大公约数,若不相等,再用大数减小数,方法同上。直至得到二数相等,即为所求。
例:54和36
54-36=18
36-18=18
所以最大公约数为18
方法四:辗转相除(略,类似方法三)
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-07-03
用大的处以小的,如果除得进小的就是,除不尽的话 取余数 用刚才的小的数除以余数,除得进那个余数就是,除不尽就依次类推再取余,用刚才的余数除以现在的余数。。。。。。
不知道你看不看得明白本回答被提问者采纳
第2个回答  2009-07-03
高中课本必修3有啊....1.辗转相除法 (后面2个数一直下去) 例:8251和6105公约数 8251=6105*1+2146 6105=2146*2+1813 2146=1813*1+333 1813=333*5+148 333=148*2+37 148=37*4+0 最后的37就是最大公约数
2.更相减损法 (后面2个数一直下去,大减小) 例:98和63 98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7 7-7=0 所以7是最大公约数
第3个回答  2009-07-03
辗转相除法 或辗转相减法
和编程有关吗
自己看看

计算两个自然数m和n的最大公约数。
54-36=18 36-18=18 所以最大公约数为18 方法四:辗转相除(略,类似方法三)

求两个自然数M和N的最大公约数。
如果M和N是互质数,则M和N的最大公约数是1,如果M和N是倍数关系,则M和N的最大公约数是较小数,如果M和N既不是互质数也不是倍数关系,则用短除法求.

用辗转相减法求两自然数M,N的最大公约数和最大公倍数
应该是辗转相除法 m>n m\/n=p1.r1 n\/r1=p2.r2 r1\/r2=p3.r3 .直到rn为0,则pn为m,n的最大公约数 最小公倍数则是把m,n相乘,然后除以它们的最大公约数

自然数m和n,n=m+1,m和n的最大公约数是(),最小公倍数是()
你好,说明m和n是连续自然数,而连续自然数是互质数,那么m和n的最大公约数是(1),最小公倍数是它们的乘积(mn)

m和n是两个自然数,n=m+1,m和n的最大公因数是___,最小公倍数是...
因为n=m+1,所以n、m是互质数,则m与n的最大公约数是1,最小公倍数是mn;故答案为:1,mn.

两个自然数m,n的最大公约数是a,最小公倍数是b,a+b=187,那么m+n=?
设m=am1;n=an1,b=an1m1(a1,b1互为质数),所以a+b=a(1+n1m1),因为187=11*17,所以a=11或17.若a=11,那么n1m1=16不合理,舍去;若a=17,n1m1=10,n1=2,m1=5,所以n=34,m=85或n=85,m=34所以m+n=119

计算两个数m和n最大公约数的传统流程是什么?
流程就是如果余数不等于0,就将n取代m的位置,成为被除数,r成为除数,这样再除一次,如果这一次的余数为零了,那么这个取代成为除数的r就是最大公约数。最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的...

求两个数m和n的最大公约数,用程序框图怎么画?
1、判断m能否被n整除,如果能,则最大公约数就是n。如果不能则进行下一步骤。2、k=m-n。比较n和k,假设n大,k小。m=n; n=k; 重复第1步骤。直到m能被n整除为止。编程:int big_divisor(int m, int n){int min,max,k=m;do{max=MAX(k,n);min=MIN(k,n);m=max;n=min;k=m%n...

c语言,求两个数m和n的最大公约数的流程图。
1、判断m能否被n整除,如果能,则最大公约数就是n。2、k=m-n。比较n和k,假设n大,k小。m=n; n=k; 重复第1步骤。直到m能被n整除为止。include "stdio.h" \/\/包含头文件 main(){ int m,n,i,min; \/\/定义变量 printf("Please Input n and m:\\n"); \/\/打印这句话 scanf("%d%d"...

c语言,求两个数m和n的最大公约数的流程图。
1、判断m能否被n整除,如果能,则最大公约数就是n。如果不能则进行下一步骤。2、k=m-n。比较n和k,假设n大,k小。m=n; n=k; 重复第1步骤。直到m能被n整除为止。编程:int big_divisor(int m, int n){ int min,max,k=m;do { max=MAX(k,n);min=MIN(k,n);m=max;n=min;k=...

相似回答