描述
输入两个整数M, N,输出它们的最大公约数。
输入
输入包含若干组测试数据(不多于40000组),每行一组数据包含两个非0整数M, N。
输出
对于每一组数据输出M、N的最大公约数。
样例输入
2364 456
样例输出
12
分析
求最大公约数基本上任何书都有的例题,用辗转相除法搞定,可用数学归纳法证明,具体可Google百科。
实现
#include <iostream>
#include <cstring>
using namespace std;
int gcd(int m, int n) {
if (n == 0) { return m; }
return gcd(n, m % n);
}
int main() {
// freopen("in.txt", "r", stdin);
int m, n;
while(cin >> m >> n) {
cout << gcd(m, n) << endl;
}
return 0;
}