| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2096 人关注过本帖
标题:C学习记录0:求两数的最大公约数之辗转相除法,以及最小公倍数
只看楼主 加入收藏
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
结帖率:75%
收藏
 问题点数:0 回复次数:5 
C学习记录0:求两数的最大公约数之辗转相除法,以及最小公倍数
                                                   先理解数学逻辑,如有不对的,请各位多多交流,谢谢!

     百度百科:最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。
辗转相除法 :设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用a除以b(a≥b),得a÷b=q......r1(0≤r1)。若r1=0,则(a,b)=b;若r1≠0,则再用b除以r1,得b÷r1=q......r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r1除以r2,……如此下去,直到能整除为止。其最后一个余数为0的除数即为(a, b)的最大公约数。
例如:a=25,b=15,a/b=1......10,b/10=1......5,10/5=2.......0,最后一个余数为0的除数就是5, 5就是所求最大公约数。

    问题:1.(a,b)=Ra,b之间的最大公约数R,即(a,b)=r_0  为什么最后会转变为了b对余数r的最大公约数呢(b,r)=r_0?  
          2. 为什么是(b,r)=r_0,而不是(r,b)=r_0?
          3. 为什么要走一直除到余数为0呢?  

    答1. 其实很简单,我们在做除法运算的时候,把被除数a,分为了2个部分。一个部分是可以被除数b整除的商q,另一个是不能被b整除的余数r。能被b整除的那部分q,余数自然为0。没有被b整除的那部分r,自然有余数。  但是此时我们要求的是a(包括能被b整除的部分,以及不能被b整除的部分)。所以,此时就相当于求不能被b整除的部分r和除数b之间的最大公因数。故(a,b)=r也可表示为(b,r)=r。  
    答2.因为商q的那部分能被整数,而余数r的部分不能被整除。所以是b对r求最大公约数r0。
    答3.不同的a,b值,对于q有不同的选择。而我们要做的就是求出余数为0为止!  举个例子:a=25,b=3.  商q1=1,2,3,4,5,6,7,8.每一次的商,都可以做不同的选择。但是只有余数为0的时候,最后一个式子中的除数才是,才是a,b的最大公约数,即(a,b)=r。
  

     最小公倍数:两个或多个整数的公倍数里最小的那一个叫做它们的最小公倍数。整数a,b的最小公倍数记为[a,b],同样的,a,b,c的最小公倍数记为[a,b,c],多个整数的最小公倍数也有同样的记号。
     最小公倍数=两数的乘积/最大公约(因)数


[此贴子已经被作者于2017-7-28 19:00编辑过]

搜索更多相关主题的帖子: 最大公约数 相除 最小公倍数 整数 整除 
2017-07-28 18:08
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
你想表达神马

DO IT YOURSELF !
2017-07-29 06:39
lmlm1001
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:4
帖 子:107
专家分:550
注 册:2015-3-1
收藏
得分:0 
建议你看看 牛顿迭代法
因为辗转相除是牛顿法的特例
2017-07-29 22:23
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
收藏
得分:0 
回复 2楼 wp231957
就是记录下自己学的东西。当然了,如果我哪儿理解不对的,还请多多交流
2017-07-30 13:40
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
收藏
得分:0 
回复 3楼 lmlm1001
恩恩,谢谢。
2017-07-30 13:40
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
收藏
得分:0 
回复 2楼 wp231957
我比较鱼,所以只能写下,免得得自己忘记了
2017-07-30 13:42
快速回复:C学习记录0:求两数的最大公约数之辗转相除法,以及最小公倍数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016246 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved