法一 <辗转相除法>:
int gcd(int x,int y)
{
int r;
while(y>0)
{
r=x%y;
x=y;
y=r;
}
return x;
}
int lcm(int x,int y)
{
return ((x*y)/gcd(x,y));
}
法二<更相减损术>
int gcd(int a, int b)
{
while(a!=b)
{
if(a>b)
a=a-b;
if(b>a)
b=b-a;
}
return a;
}
int lcm(int a, int b)
{
return a*b/gcd(a,b);
}
知识点总结:所谓更相减损术,即是用较大的数减去较小的数,构成新的一对数,再用大的减去小的,直到两数相等,此时所得得数即为两个数的最大公约数。