辗转相除法:两个数的最大公约数等于较小的数和较大的数除以较小的数的余数的最大公约数。以此递归下去,直到较大的数除以较小的数的余数为零,那么那个较小的数就是所求的最大公约数。递归算法如下:
int maxdi(int m,int n)
{int high=(m>n?m:n);
int low=(m<n?m:n);
int mod=high%low;
if(mod==0)
return low;
else
return maxdi(low,mod);
}
最小公倍数为两个数的乘积除以最大公约数。