最大公约数算法gcd

GCD

欧几里德算法(Euclid)阐述了一种gcd算法。gcd最大公约数(greatest common divisor),简言之,我们想求gcd(x,y),假设(x>y),如果存在下式:x = q*y + r,那么则有gcd(x,y) = gcd(y,r) ,其实上式也称为gcd递归定理,即gcd(a,b) = gcd (b,a mod b)
这个递归式看似很简单。实则它还是很值得推敲的,首先,它怎么证明?其次,该算法的运行时间为如何?
在密码学中,欧几里德算法有着相当广泛的应用,譬如求乘法逆元,大整数分解等等。。
在<<编程之美>>一书中,给出了不少gcd算法的简单实现。因为gcd算法的实现是递归,所以要特别注意栈溢出。

最简单的gcd算法

int GCD(int x,int y)
{
    if(y==0) return x;
    if(x<y)  return GCD(y,x);
    else  return GCD(y,x%y);
}

   转载规则


《最大公约数算法gcd》 锦泉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
sql的三值逻辑 sql的三值逻辑
在SQL中,NULL是一种特有的数据类型,其等价于没知有任何值、是未知数。NULL与0、空道字符串、空格都不同。SQL默认情况下对WHERE XX!= Null的判断会永远返回0行,却不会提示语法错误。内容非ANSI SQL标准中data=
2021-07-05
下一篇 
获取ApplicationContext的五种方式和注意事项 获取ApplicationContext的五种方式和注意事项
ApplicationContext对象是Spring开源框架的上下文对象实例,在项目运行时自动装载Handler内的所有信息到内存
2021-06-22
  目录