辗转相除法求最大公约数是一种常用的求两个数的最大公约数的方法。方法是:以小数除大数,如果能整除,那么小数就是所求的最大公约数。否则就用余数来除除数;再用新除法的余数去除刚才的余数。依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数。
最大公约数
代码实现非常简单
#define LL long long
LL gcd(LL a,LL b) //最大公约数
{
if(b==0)
return a;
return gcd(b,a%b);
}
最小公倍数
就是两个数相乘,然后除以他们的最大公约数。
LL lcm(LL a,LL b) //最小公倍数
{
return a*b/gcd(a,b);
}