公约数是指两个或多个整数共有约数中的一个,求公约数是在数学中常见的问题。在C语言中,可以通过辗转相除法等算法来计算公约数。
1. 辗转相除法
辗转相除法,也称欧几里得算法,是求公约数的一种方法。其基本思想是用较大数除以较小数,再用除数除以出现的余数,如此反复,直到余数为零为止。此时,的除数即为公约数。
```cttt b)
while (b != 0)
{p = a % b;
a = b;p;
} a;
2. 更相减损术
更相减损术是另一种求公约数的方法。其基本思想是用较大数减去较小数,然后继续用差值和较小数相减,如此反复,直到两数相等为止。此时,的数即为公约数。
```cttt b)
if (a == b)
{ a;
}
if (a< b)
{ gcd(b, a);
}
else
{ gcd(a - b, b);
}
C语言求公约数的方法有很多种,常用的有辗转相除法和更相减损术。两种方法各有优缺点,可以根据实际情况选择合适的算法。