请问一下最大公约数的那个求法是怎么推导出来的
想了半天,但是数学功底太菜,一直没思路。忘各路大虾解释一下就是辗转相除的那里没看懂是什么道理,这样一直求余怎么就能得到最大公约数呢?
int mcd(int a, int b)
{
if( a <= 0 || b <= 0 )
return -1;
int max,min;
max = a > b ? a : b;
min = a + b - max;
int temp;
//辗转相除
while( min )
{ temp = min;
min = max % min;
max = temp;
}
return max; }