给定n对正整数ai,bi,请你求出每对数的最大公约数。
输入格式
第一行包含整数n。
接下来n行,每行包含一个整数对ai,bi。
输出格式
输出共n行,每行输出一个整数对的最大公约数。
数据范围
1≤n≤105,
1≤ai,bi≤2∗109
输入样例:
2
3 6
4 6
输出样例:
3
2
辗转相除法
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll k;cin>>k;
while(k--)
{
ll a,b;
cin>>a>>b;
while (b)
{
ll c=a%b;
a=b;
b=c;
}
cout<<a<<endl;
}
}
递归辗转相除法法
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b)
{
if(!b)return a;
return gcd(b,a%b);
}
int main()
{
ll k;cin>>k;
while(k--)
{
ll a,b;
cin>>a>>b;
cout<<gcd(a,b)<<endl;
}
}