作者在 2013-05-24 13:21:37 发布以下内容
求两个正整数n和m的最大公因子。接收键盘输入两个正整数,输出其最大公因子。第一行为测试用例个数k,接下来k行,每行两个正整数。输出为k行,每行输出对应的最大公因子。
样例输入:
2
8 12
9 1
样例输出:
4
样例输入:
2
8 12
9 1
样例输出:
4
1
代码:
#include<iostream>
using namespace std;
int zdgyz(int x,int y)
{
int i;
if(x>y) {i=x;x=y;y=i;}//如果x>y,交换x与y
i=y%x;
if(i!=0)
return zdgyz(x,y%x);
else
return x;
}
int main()
{
int k,n,m;
cin>>k;
while(k--)
{
cin>>n>>m;
cout<<zdgyz(n,m)<<endl;
}
return 0;
}