单点时限: 2.0 sec
内存限制: 256 MB
实现欧几里德算法(也即辗转相除法)。
输入格式
测试含多组测试数据。
每组测试数据只含一行,这一行包含两个整数 a,b (0<a,b≤231).
输出格式
对于每组测试数据,输出一行,包含一整数 c,表示 a 和 b 的最大公约数。
样例
input
16 24
output
8
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
while (cin >> a >> b) {
int imax = max(a, b);
int imin = min(a, b);
int temp;
while (1) {
temp = imax % imin;
if (temp != 0) {
imax = imin;
imin = temp;
} else {
cout << imin << endl;
break;
}
}
}
return 0;
}