求最大公约数的最好的算法思路就是“辗转取余法”,这里我给一个求最大公约数的函数:
int gcd(int x, int y)
{
return x%y ? gcd(y, x%y) : y;
}
这样的递归完美地实现了辗转取余法的思路,并且精简简单,且运行效率快。
既然已经求出了最大公约数了,那么此时我们就可以顺便把最小公倍数也给求出来了,即:
int sum=x*y/gcd(x,y);
2024-02-10 19:52:16
求最大公约数的最好的算法思路就是“辗转取余法”,这里我给一个求最大公约数的函数:
int gcd(int x, int y)
{
return x%y ? gcd(y, x%y) : y;
}
这样的递归完美地实现了辗转取余法的思路,并且精简简单,且运行效率快。
既然已经求出了最大公约数了,那么此时我们就可以顺便把最小公倍数也给求出来了,即:
int sum=x*y/gcd(x,y);
下一篇:辗转相除法(求最大公约数)