輸入多組兩個正整數,輸出它們的最大公約數 (GCD)。
核心性質:gcd(a, b) = gcd(b, a % b)。
遞歸/迭代直到餘數為 0,當前除數即為 GCD。
#include <cstdio>
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
int main() {
int m, n;
while (scanf("%d %d", &m, &n) == 2) {
printf("%d\n", gcd(m, n));
}
return 0;
}
這是最基礎的數論算法,代碼極簡,效率極高,是無數進階算法的基石。