辗转相除法又叫欧几里得辗转相除法,最早出现在公元前300年古希腊著名数学家欧几里得的《几何原本》》(第VII卷,命题i和ii)中。而在中国则可以追溯至东汉出现的《九章算术》。而在现代数学中,这应该是属于数论的部分的。

要想解释辗转相除法的原理,需要先知道以下两点:
一、一个一般定理:
    如果a是任一整数而b是任一大于零的整数,则我们总能找到一整数q,使
                     a=bq+r
    这里r是满足不等式0<=r<b的一个整数。

二、最大公因子的表示方法:
    如果整数a和b的最大公因子是d,则表示为d=(a,b)  (不知道现在教科书上是怎么表示的)

给定a和b(a>=b)两个整数,求最大公因子d。
    根据上边给的定理,可以将a写成
    a=bq+r
    辗转相除法是告诉我们
    (a,b)=(b,r)
    即a和b的最大公因数和b和r(r是a除以b的余数)的最大公因数是相等的。

原理:因为对任意同时整除a和b的数u,有
      a=su,b=tu,
      它也能整除r,因为r=a-bq=su-qtu=(s-qt)u。
      反过来每一个整除b和r的整数v,有
      b=s'v , r=t'v
      它也能整除a,因为a=bq+r=s'vq+t'v=(s'q+t')v.

因此a和b的每一个公因子同时也是b和r的一个公因子,反之亦然。这样由于a和b的全体公因子集合与b和r的全体公因子集合相同,所以a和b的最大公因子必须等于b和r的最大公因子,这就证明了上边的等式。即(a,b)=(b,r)。

 #include<stdio.h>void main(){int num1 = 0;int num2 = 0;scanf("%d,%d", &num1,&num2);int min = num1 < num2 ? num1 : num2;int max = num1 > num2 ? num1 : num2;int i = max % min;int sum = max * min;while (i != 0) {min = min % i;i = i % min;}printf("最大公约数是%d", min);printf("最小公倍数是%d", sum/min);}

SYDZ 辗转相除法的原理与实现相关推荐

  1. 算法:欧几里得辗转相除法的原理

    目录 辗转相除法的原理 更相减损术(辗转相减法) 算法实现 求最小公倍数 辗转相除法的原理 辗转相除法具体是谁提出的也难以考证,但是这个算法最早出现在古希腊数学家欧几里得的著作-----<几何原 ...

  2. 辗转相除法的原理,一看就懂,一学就会

    看了一些解释,自己思考一下,做了说明,感觉很清晰,希望对大家有帮助. 求两个数a b的最大公约数m 辗转相除法 m是a b的最大公约数,所以a b一定是m的整数倍 a=xm,b=ym 差值a-b=(x ...

  3. 轻松掌握辗转相除法(原理+俩道简单编程题详解)

    辗转相除法 什么是辗转相除法? 辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法. 辗转相除法是如何求俩个自然数的最大公约数的? 话不多说上例题: 例如,求(319,377 ...

  4. 辗转相除法的原理解析与实现

    今天看到个问题就随便写写.

  5. 解析:求最大公约数的“辗转相除法原理”

    题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 用c语言编代码如下: #include<stdio.h> void main() { int p, r, n, m, temp; ...

  6. python实现辗转相除法求最大公约数和最小公倍数

    辗转相除法数学原理 辗转相除法也称欧几里得算法,是用来求两个正整数的最大公约数的算法.接下来我们用实例来解释一下.假如我们需要求12和21的最大公约数,用辗转相除法是这样实现的: 21 / 12 = ...

  7. C语言学习记录——辗转相除法

    抛开程序一年多了,重新捡起来,开始用浙大老师的教程. 因为目前没有从事开发的工作了,所以整个学习的过程完全不急躁,可以说是相当得慢,一节课会反反复复地去看,去思考这个知识点到底是在讲什么. 第一节课通 ...

  8. 【常用算法】辗转相除法求最大公约数

    辗转相除法,又称欧几里德算法(Euclidean Algorithm),是求两个数的最大公约数(greatest common divisor)的一种方法.用较大的数除以较小的数,再以除数和余数反复做 ...

  9. 一文搞定最大公约数(四种方法,赋原理和比较,超详细解答)

    最大公约数 前言 1.暴力穷举法 代码 2.辗转相除法 步骤 原理 代码 3.更相减损法 步骤 原理 代码 比较 4.stein算法 比较 运算符 & 移位操作符 原理 步骤 代码 前言 求两 ...

最新文章

  1. 完美解决百度地图MarkerClusterer 移动地图时,Marker 的Label 丢失的问题
  2. BZOJ 1798: [Ahoi2009]Seq 维护序列seq
  3. jquery常用表单操作
  4. 从0到1构建美团压测工具
  5. ASP.NET TextBox 当鼠标点击后清空默认提示文字
  6. eclipse报错: Unhandled event loop exception No more handles
  7. 在类库中使用Session
  8. 基于python+django框架+Mysql数据库的电影院售票选座系统设计与实现
  9. 16种常用的数据分析方法-聚类分析
  10. mayapython常用模块_Maya中Python普及教程
  11. amd编码器 hevc_HEVC/H.265硬件编码器实现杂谈
  12. from StyleFrame import StyleFrame, Styler ModuleNotFoundError: No module named ‘StyleFrame‘
  13. IOS开发—iOS视频拍摄与压缩
  14. 长链亲脂性二烷基碳菁类染料DiR iodide,DiR细胞膜染料,100068-60-8
  15. 技术交流微信群欢迎小伙伴前来交流
  16. Google earth 生成研究区适量边界(研究区边界从哪来?)
  17. 2018秦皇岛ccpc赛后总结
  18. 固态硬盘和机械硬盘的区别
  19. hpuoj 1210: OY问题 [搜索]
  20. springboot+springdata+elasticsearch+logstash+拼音分词实现全文搜索

热门文章

  1. Windows Server 2003 Key
  2. Java9-17新特性
  3. easyui datagrid th标签列数字保留2位小数
  4. 【go语言 socket编程系列】IPAddr类型及ResolveIPAddr方法
  5. hitTest:(CGPoint)point withEvent:(UIEvent *)event
  6. Mac 驱动检测不出来原因
  7. AD快捷键、常见问题汇总
  8. 201771010137 赵栋《面向对象程序设计(java)》第十六周学习总结
  9. 十分钟开发物联网:智能气象站(4G版)
  10. 操作系统实验一:线程的创建与撤销