美文网首页
求两个数的最大公约数

求两个数的最大公约数

作者: 顶儿响叮当 | 来源:发表于2016-03-14 10:52 被阅读17次

**假设把x和y的最大公约数表示成为f(x,y)
f(x,y) = f(y,x%y) **

/* 用欧几里德算法求最大公约数 
 * 求最大公约数是一个比较基础的问题, 
 * 欧几里得早在《几何原本》中就阐明了一个高效的算法, 
 * 据说这大概发生在公元前300年左右。 
 * 具体是这样的:假设把x和y的最大公约数表示成为f(x,y), 
 * 并且x>=y>0。现在取k=x/y,b=x%y,则x=k*y+b, 
 * 变形为b=x - k*y;x和y能被f(x,y)整除,那么b也能被f(x,y)整除; 
 * 所以 f(x,y) = f(y,x%y) 
 */  

int GCD(int x,int y)  
{  
    return (!y) ? x : GCD(y,x%y);  
} 

相关文章

  • 最大公约数C++

    求两个数的最大公约数:

  • python 求最大公约数和最小公倍数

    求两个数的最大公约数和最小公倍数 求三个数的最大公约数和最小公倍数

  • 2.求两个数的最大公约数

    题目:求两个数的最大公约数 方式一:使用辗转相除法求两个数的最大公约数 具体代码如下:这里有两个问题?问题1: 为...

  • 常用的简单函数 ——求最大公约数的函数

    当计算多个数的公约数时,需要知道,前两个的最大公约数,依次和后面的数求公约数,得到的就是所有数字的最大公约数。

  • 实验十:优秀代码

    C : 递归求最大公约数 题目描述写递归函数求两个数的最大公约数优秀代码 D: 编写删除字符串中某个字符的函数--...

  • 最大公约数

    最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。 想求两个数找最大公约数是什么?...

  • 【golang】递归求最大公约数

    首先是求两个数最大公约数的数学原理:   辗转相除法, 又名欧几里德算法,是求最大公约数的一种方法。它的具体做法是...

  • 辗转相除法

    求两个数a和b的最大公约数的算法: 1、如果b等于0,计算结束,a就是最大公约数; 2、否则,计算a除以b的余数,...

  • 欧几里得算法

    欧几里得算法:辗转相除法,用来求两个数的最大公约数。【在数学里面最大公约数是没有负的定义的,所以负数是不谈最大公约...

  • 最小公倍数

    1.解题思路 可以先用辗转相除法求两个数的最大公约数,而最小公倍数 = 两数之积 / 最大公约数。 2.输入描述 ...

网友评论

      本文标题:求两个数的最大公约数

      本文链接:https://www.haomeiwen.com/subject/ursflttx.html