最大公约数的算法

.

1、查找约数法.

先分别找出每个数的所有约数,再从两个数的约数中找出公有的约数,其中最大的一个就是最大公约数.

例如,求12和30的最大公约数.

12的约数有:1、2、3、4、6、12;

30的约数有:1、2、3、5、6、10、15、30.

12和30的公约数有:1、2、3、6,其中6就是12和30的最大公约数.

2 更相减损术

《九章算术》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”

翻译成现代语言如下:

第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。

第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。

则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数。

其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法。

3、辗转相除法.

当两个数都较大时,采用辗转相除法比较方便.其方法是:

以小数除大数,如果能整除,那么小数就是所求的最大公约数.否则就用余数来除刚才的除数;再用这新除法的余数去除刚才的余数.依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数.

例如:求4453和5767的最大公约数时,可作如下除法.

5767÷4453=1余1314

4453÷1314=3余511

1314÷511=2余292

511÷292=1余219

292÷219=1余73

219÷73=3

于是得知,5767和4453的最大公约数是73.

辗转相除法适用比较广,比短除法要好得多,它能保证求出任意两个数的最大公约数.

4、求差判定法.

如果两个数相差不大,可以用大数减去小数,所得的差与小数的最大公约数就是原来两个数的最大公约数.例如:求78和60的最大公约数.78-60=18,18和60的最大公约数是6,所以78和60的最大公约数是6.

如果两个数相差较大,可以用大数减去小数的若干倍,一直减到差比小数小为止,差和小数的最大公约数就是原来两数的最大公约数.例如:求92和16的最大公约数.92-16=76,76-16=60,60-16=44,44-16=28,28-16=12,12和16的最大公约数是4,所以92和16的最大公约数就是4.

5、分解因式法.

先分别把两个数分解质因数,再找出它们全部公有的质因数,然后把这些公有质因数相乘,得到的积就是这两个数的最大公约数.

例如:求125和300的最大公约数.因为125=5×5×5,300=2×2×3×5×5,所以125和300的最大公约数是5×5=25.

6、短除法.

为了简便,将两个数的分解过程用同一个短除法来表示,那么最大公约数就是所有除数的乘积.

例如:求180和324的最大公约数.

因为:

5和9互质,所以180和324的最大公约数是4×9=36.

7、除法法.

当两个数中较小的数是质数时,可采用除法求解.即用较大的数除以较小的数,如果能够整除,则较小的数是这两个数的最大公约数.

例如:求19和152,13和273的最大公约数.因为152÷19=8,273÷13=21.(19和13都是质数.)所以19和152的最大公约数是19,13和273的最大公约数是13.

8、缩倍法.

如果两个数没有之间没有倍数关系,可以把较小的数依次除以2、3、4……直到求得的商是较大数的约数为止,这时的商就是两个数的最大公约数.例如:求30和24的最大公约数.24÷4=6,6是30的约数,所以30和24的最大公约数是6.

.

1、查找约数法.

先分别找出每个数的所有约数,再从两个数的约数中找出公有的约数,其中最大的一个就是最大公约数.

例如,求12和30的最大公约数.

12的约数有:1、2、3、4、6、12;

30的约数有:1、2、3、5、6、10、15、30.

12和30的公约数有:1、2、3、6,其中6就是12和30的最大公约数.

2 更相减损术

《九章算术》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”

翻译成现代语言如下:

第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。

第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。

则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数。

其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法。

3、辗转相除法.

当两个数都较大时,采用辗转相除法比较方便.其方法是:

以小数除大数,如果能整除,那么小数就是所求的最大公约数.否则就用余数来除刚才的除数;再用这新除法的余数去除刚才的余数.依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数.

例如:求4453和5767的最大公约数时,可作如下除法.

5767÷4453=1余1314

4453÷1314=3余511

1314÷511=2余292

511÷292=1余219

292÷219=1余73

219÷73=3

于是得知,5767和4453的最大公约数是73.

辗转相除法适用比较广,比短除法要好得多,它能保证求出任意两个数的最大公约数.

4、求差判定法.

如果两个数相差不大,可以用大数减去小数,所得的差与小数的最大公约数就是原来两个数的最大公约数.例如:求78和60的最大公约数.78-60=18,18和60的最大公约数是6,所以78和60的最大公约数是6.

如果两个数相差较大,可以用大数减去小数的若干倍,一直减到差比小数小为止,差和小数的最大公约数就是原来两数的最大公约数.例如:求92和16的最大公约数.92-16=76,76-16=60,60-16=44,44-16=28,28-16=12,12和16的最大公约数是4,所以92和16的最大公约数就是4.

5、分解因式法.

先分别把两个数分解质因数,再找出它们全部公有的质因数,然后把这些公有质因数相乘,得到的积就是这两个数的最大公约数.

例如:求125和300的最大公约数.因为125=5×5×5,300=2×2×3×5×5,所以125和300的最大公约数是5×5=25.

6、短除法.

为了简便,将两个数的分解过程用同一个短除法来表示,那么最大公约数就是所有除数的乘积.

例如:求180和324的最大公约数.

因为:

5和9互质,所以180和324的最大公约数是4×9=36.

7、除法法.

当两个数中较小的数是质数时,可采用除法求解.即用较大的数除以较小的数,如果能够整除,则较小的数是这两个数的最大公约数.

例如:求19和152,13和273的最大公约数.因为152÷19=8,273÷13=21.(19和13都是质数.)所以19和152的最大公约数是19,13和273的最大公约数是13.

8、缩倍法.

如果两个数没有之间没有倍数关系,可以把较小的数依次除以2、3、4……直到求得的商是较大数的约数为止,这时的商就是两个数的最大公约数.例如:求30和24的最大公约数.24÷4=6,6是30的约数,所以30和24的最大公约数是6.


相关内容

  • 算法与程序框图复习教案
  • 算法与程序框图 学习目标: 1. 明确算法的含义,熟悉算法的三种基本结构:顺序.条件和循环,以及基本的算法语句. 2. 能熟练运用辗转相除法与更相减损术.秦九韶算法.进位制等典型的算法知识解决同类问 题. 重点: 算法的基本知识与算法对应的程序框图的设计. 难点: 与算法对应的程序框图的设计及算法程 ...

  • 算法试验一_求最大公约数实验报告_
  • 昆明理工大学信息工程与自动化学院学生实验报告 ( 2012 - 2013 学年 第 1 学期 ) 课程名称:算法设计与分析 开课实验室:信自楼应用.网络机房445 2012 年10月25日 一.上机目的及内容 1. 上机内容 求两个自然数m 和n 的最大公约数. 2. 上机目的 (1)复习数据结构课 ...

  • 算法分析与设计实验报告-最大字段和问题
  • 实验报告 课程名称 算法分析与设计 实验项目名称 最大字段和问题 班级与班级代码 实验室名称(或课室) 实验楼802 专 业: 计算机科学与技术 任课教师: 李绍华 学 号: 姓 名: 实验日期: 2016年11月25日 广东财经大学教务处 制 姓名 实验报告成绩 评语: 指导教师(签名) 年 月 ...

  • 最大公约数三种办法,计数器,流程图
  • 昆明理工大学信息工程与自动化学院学生实验报告 ( 2012 - 2013 学年 第 1 学期 ) 课程名称:算法设计与分析 开课实验室: 信自楼机房442 2012 年10月 18日 一.上机目的及内容 1. 上机内容 求两个自然数m 和n 的最大公约数. 2. 上机目的 (1)复习数据结构课程的相 ...

  • 原始粒子群算法的基本原理
  • 摘要:随着决策环境的复杂化,群体决策变得越来越重要,在此基础上研究粒子群优化算法,详细介绍其基本原理并进行分析显得十分重要. 关键词:粒子群优化算法 种群大小 最大速度 1.1优化算法的分类 随着现代科学技术的飞速发展,目前解决优化问题的方法主要分为两大类:一是模拟自然进化过程而发展起来的进化算法, ...

  • USACO 4.2.1 Ditch 网络最大流问题算法小结
  • 通过 USACO 4.2.1 Ditch 学习一下最大流算法 .可惜它给的测试数据几乎没有任何杀伤力,后面测试时我们采用 DD_engi 写的程序生成的加强版数据. 总体上来说,最大流算法分为两大类:增广路 (Augmenting Path) 和预流推进重标号 (Push Relabel) .也有算 ...

  • 阵列信号处理中DOA算法分类总结(大全)
  • 阵列信号处理中的DOA(窄带) /接收过程中的信号增强.参数估计:从而对目标进行定位/给空域滤波提供空域参数.注,延迟相加法和CBF 法本质相同,仅仅 是CBF 法的最优权向量是归一化了的.θ的函数,P(θ). /经典波束形成器 CBF /Bartlett 波束形成器CBF :Conventiona ...

  • 匈牙利算法
  • 求kM算法和匈牙利算法的程序代码 kM算法和匈牙利算法的程序代码,最好是用matlab给出的,用c语言亦可.不要用其他的编程语言. //二分图最佳匹配,kuhn munkras算法,邻接阵形式,复杂度O(m*m*n) //返回最佳匹配值,传入二分图大小m,n和邻接阵mat,表示权值 //match1 ...

  • 更相减损法,秦九韶算法12
  • 更相减损法,秦九韶算法 一.学习目标 1.了解最大公约数的一般方法 2.理解更相减损法,展转相除法的算法步骤和程序框图 3.了解秦九韶算法的方法和步骤以及对应的程序框图 二.自主学习,课堂探讨 1.如何用辗转相除法,更相减损术求两个整数的最大公约数. 2.什么是秦九韶算法?用秦九韶算法求n次多项式学 ...

  • 一种基于三维最大类间方差的图像分割算法
  • 第.期"$$)年.月电子学报/V,/W;WV,TX-2V/S2-2V/P7A+)!-7+.S=Q+"$$) 一种基于三维最大类间方差的图像分割算法 景晓军!,李剑峰!,刘郁林" (!#北京邮电大学,北京!$$%&':重庆($$$)*)"#重庆通信学院, ...