1、假设两个数中最小的是最大公约数,如果不是则一直减,直到存在。
#include <stdio.h>
int main()
{
int m = 0;
int n = 0;
int ret = 0;
scanf("%d %d", &m, &n);
if (m > n)
ret = n;
else
ret = m;
while (1)
{
if (m % ret == 0 && n % ret == 0)
{
break;
}
ret--;
}
printf("%d\n", ret);
return 0;
}
2、辗转相处法
#include <stdio.h>
int main()
{
int m = 0;
int n = 0;
int ret = 0;
scanf("%d %d", &m, &n);
while (ret = m % n)
{
m = n;
n = ret;
}
printf("%d", n);
return 0;
}