辗转相除法求最大公约数

约数

如果数 a 能被数 b 整除,a 就叫做 b 的倍数,b 就叫做 a 的约数。

最大公约数

最大公约数就是两个数中,大家都能相约且最大的数。

辗转相除法

辗转相除法又名欧几里得算法(Euclidean algorithm),目的是求出两个正整数的最大公约数。它是已知最古老的算法,其可追溯至公元前300年前。

这条算法基于一个定理:两个正整数 a 和 b(a 大于 b),它们的最大公约数等于 a 除以 b 的余数 c 和 较小数 b 之间的最大公约数。

算法计算过程是这样的:

2个数相除,得出余数

如果余数不为0,则拿较小的数与余数继续相除,判断新的余数是否为0

如果余数为0,则最大公约数就是本次相除中较小的数。

比如数字 25 和 10 ,使用辗转相除法求最大公约数过程如下:

25 除以 10 商 2 余 5

根据辗转相除法可以得出,25 和 10 的最大公约数等于 5 和 10 之间的最大公约数

10 除以 5 商 2 余 0, 所以 5 和 10 之间的最大公约数为 5,因此25 和 10 的最大公约数为 5

题目要求

完善函数 gcd的功能。函数 gcd 会计算并返回传入的两个正整数参数之间最大的公约数

如下所示:

gcd(30,3); //返回结果为 3

gcd(12, 24); //返回结果为 12

gcd(111, 11); //返回结果为 1

functiongcd(num1,num2){var remainder = 0;do{

remainder= num1 %num2;

num1=num2;

num2=remainder;

}while(remainder!==0);returnnum1;

}

console.log(gcd(24,12));

实现辗转相除法通常有两种思路,分别如下

1、使用循环实现

function gcd(number1, number2){

var remainder = 0;

do {

remainder = number1 % number2;

number1 = number2;

number2 = remainder;

} while(remainder !== 0);

return number1;

}

2、使用函数递归

function gcd(number1, number2) {

if (number2 == 0) {

return number1;

} else {

return gcd(number2, number1 % number2);

}

}

多项式辗转相除法求最大公约数_辗转相除法求最大公约数相关推荐

  1. python中and和or的惰性求值特点_惰性求值和yield-Python

    惰性求值 惰性求值(Lazy evaluation)是在需要时才进行求值的计算方式.表达式不在它被绑定到变量之后就立即求值,而是在该值被取用的时候求值. 除可以得到性能的提升(更小的内存占用)外,惰性 ...

  2. python惰性求值例子_惰性求值和yield-Python

    惰性求值 惰性求值(Lazy evaluation)是在需要时才进行求值的计算方式.表达式不在它被绑定到变量之后就立即求值,而是在该值被取用的时候求值. 除可以得到性能的提升(更小的内存占用)外,惰性 ...

  3. java海伦公式求三角形面积_海伦公式求三角形面积出错求教

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 就下面这个程序 输入其他的数字都可以算出面积 但是当输入3,4,6时 计算出面积为零 求吧友指出错误在哪 package javaapplication1 ...

  4. 标量 向量 标量求导链式法则_矩阵求导术(上)

    矩阵求导的技术,在统计学.控制论.机器学习等领域有广泛的应用.鉴于我看过的一些资料或言之不详.或繁乱无绪,本文来做个科普,分作两篇,上篇讲标量对矩阵的求导术,下篇讲矩阵对矩阵的求导术.本文使用小写字母 ...

  5. 逆函数求导公式_反函数求导公式,the formula about inverse-function's derivative,音标,读音,翻译,英文例句,英语词典...

    补充资料:反函数 反函数 inverse function 反函数t~加"出佣;o6paT皿aa中,K"抓] 函数的完全逆象,即对给定函数值域的每个元素y都对应所给函数定义域的一切 ...

  6. mysql最大公约数_什么是最大公约数和最小公倍数?

    最大公约数:指能够整除多个整数的最大正整数,而多个整数不能都为零,例如8和12的最大公约数为4: 最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最 ...

  7. python辗转相除法求最大公约数最小公倍数_辗转相除法求最大公约数/最小公倍数...

    http://blog.csdn.net/jtujtujtu/article/details/4407171 2009 辗转相除法求最大公约数: 辗转相除法, 又名欧几里德算法(Euclidean a ...

  8. 算法刷题-数论-试除法求约数、约数个数、约数之和、最大公约数(辗转相除法)

    文章目录 acwing869. 试除法求约数 acwing870. 约数个数 acwing871. 约数之和 acwing872. 最大公约数 acwing869. 试除法求约数 acwing869. ...

  9. 辗转相除法+更相减损法求最大公约数

    怎么求两个数的最大公约数呢? 简单的想法就是直接暴力枚举,试出最大公约数 #暴力枚举 #暴力枚举 def GCD(numberA,numberB):gcd=1for i in range(2,max( ...

最新文章

  1. 【倒计时】Qtum量子链全节点超级大奖1000QTUM,不要错过!
  2. time and value
  3. python的模块提供了许多文件管理方法_学会这几招,轻松掌握Python文件管理
  4. docker $PWD路径_使用docker炼丹
  5. java实用教程——组件及事件处理——处理事件
  6. 在JS中如何判断所输入的是一个数、整数、正数、非数值?
  7. 一个月学会Python,零基础入门数据分析
  8. Java中的 WeakReference 和 SoftReference
  9. 双十一京东PLUS会员 VS 阿里88VIP,谁的羊毛多?
  10. python3 float最大值_Python3(3) Python 函数
  11. 快速突破面试算法之数学运算篇
  12. DIY智能小车篇(四):常见问题 BUG汇总
  13. Unity 中英文互译插件
  14. 暴走P图APP隐私政策
  15. App Thinning Xcode9打包选择
  16. 计算机桌面怎么换服,台式电脑怎么换桌面壁纸
  17. 根据三角形的三条边长(长、中、短三条边),来判断三角形类型
  18. Matlab实现基于二维伽马函数的光照不均匀图像自适应校正算法
  19. 基于STM32f103的电子秤系统设计
  20. js求三个数的最大值和最小值

热门文章

  1. MacOS 安装adb
  2. PS 滤镜——旋转模糊
  3. is_file php 绕过,文件上传之绕过
  4. 幻数java题_java – ConcurrentModificationException的幻数
  5. 人民邮电报丨智链助力北大荒大米实现区块链全生命周期追溯
  6. 人工智能中神经网络与自然语言处理共生关系_CodingPark编程公园
  7. 华为设备VRRP多VLAN负载分担
  8. 苹果手机app应用显示未受信任打不开怎么办
  9. 做UI设计需要具备什么技能
  10. HTML基础之创建简单表格