本质是辗转相除法:(a,b是被求的数) $$ a \div b = c ......{a \% b} $$ 在这个公式中如果 $a\%b = 0$,说明 $(a,b) = b$,如果$a \% b \ne 0$,则进行赋值$a:= b,b:= a \% b$,继续进行辗转相除,直至得到 $a\% b=0$ 。
int gcd(int a, int b){ return a % b ? gcd(b, a % b) : b; }