最大公约数是指两个或多个整数共有约数中最大的一个,简称公约数最大公因数,通常使用字母(a,b)来表示,也可以用其他字母来表示。
一、辗转相减法
辗转相减法,又称为欧几里德算法,具体的步骤如下:
- 用大数减去小数,接着用得到的差值去减小的数,一直一直重复,直到减数和差值相等时算法结束;
 - 这个最大公约数就是每次得到的差值;
 
具体的解法请参考以下代码,以求解a=50,b=15为例:
// 辗转相减法求最大公约数 int gcd(int a, int b) {   while (a != b) {     if (a > b) a = a - b;     else b = b - a;   }   return a; }   int main() {   int a = 50, b = 15;   int result = gcd(a, b);   printf("%d", result);   return 0; }    二、辗转相除法
辗转相除法,也称为欧几里德算法,具体的步骤如下:
- 用除数除以余数,接着用得到的余数去除先前的除数,一直重复这个过程,直到余数为0,则此时的除数就是最大公约数。
 
具体的解法请参考以下代码,以求解a=50,b=15为例:
// 辗转相除法求最大公约数 int gcd(int a, int b) {   if (b == 0) return a;   return gcd(b, a%b); }   int main() {   int a = 50, b = 15;   int result = gcd(a, b);   printf("%d", result);   return 0; }             