cpp
#include <stdio.h>
int test(int a, int b)
{
while (b != 0)
{
int temp = a % b;
a = b;
b = temp;
}
return a;
}
int main()
{
int a = 0, b = 0;
scanf_s("%d%d", &a, &b);
int c=test(a,b);
printf("%d", c);
return 0;
}

最大公约数(Greatest Common Divisor,简称 GCD) ,也叫最大公因数,指的是:对于两个或多个整数,能同时整除它们的最大正整数。
举个例子:
-
求 12 和 18 的最大公约数:
- 先列出 12 的所有约数(能整除 12 的数):1、2、3、4、6、12
- 再列出 18 的所有约数:1、2、3、6、9、18
- 找出两者共有的约数(公约数):1、2、3、6
- 其中最大的那个就是最大公约数:6
编程中求最大公约数的常用方法(欧几里得算法 / 辗转相除法):
两个数的最大公约数 = 较小数 和 两数相除余数 的最大公约数,直到余数为 0,此时的除数就是最大公约数。
代码执行过程(以 12 和 18 为例):
- 初始:a=12,b=18 → 计算 temp=12%18=12 → a=18,b=12
- 第二次循环:temp=18%12=6 → a=12,b=6
- 第三次循环:temp=12%6=0 → a=6,b=0 → 循环结束,返回 a=6