求最大公约数和最小公倍数
时间限制:1秒 内存限制:128M
题目描述
给出两个正整数,求出它们的最大公约数和最小公倍数。
输入描述
第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
随后的n行输入两个整数i,j(0<i,j<=32767)。
随后的n行输入两个整数i,j(0<i,j<=32767)。
输出描述
输出每组测试数据的最大公约数和最小公倍数。
样例
输入
3
6 6
12 11
33 22
6 6
12 11
33 22
输出
6 6
1 132
11 66
1 132
11 66
#include<iostream>
using namespace std;
int h(int a,int b)
{
int r=0;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
int main()
{
int n;
cin>>n;
int a,b,i;
for(i=1;i<=n;i++)
{
cin>>a>>b;
int c=h(a,b);
cout<<c<<' ';
cout<<a*b/c<<endl;
}
return 0;
}