描述
-
输入
-
第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
随后的n行输入两个整数i,j(0<i,j<=32767)。
输出
- 输出每组测试数据的最大公约数和最小公倍数 样例输入
-
3 6 6 12 11 33 22
样例输出
-
6 6 1 132 11 66
#include <iostream>
using namespace std;
int fMax(int lhs, int rhs)
{
if (lhs<rhs)
{
lhs = lhs^rhs;
rhs = lhs^rhs;
lhs = lhs^rhs;
}
while (lhs%rhs)
{
int t = lhs;
lhs = rhs;
rhs = t%rhs;
}
return rhs;
}
int fMin(int lhs, int rhs)
{
return lhs*rhs/fMax(lhs,rhs);
}
int main()
{
int n, m1, m2, m_max, m_min;
cin >> n;
while (n--)
{
cin >> m1 >> m2;
cout << fMax(m1, m2) << " " << fMin(m1, m2) << endl;
}
return 0;
}
-
输入
-
第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
随后的n行输入两个整数i,j(0<i,j<=32767)。
输出
- 输出每组测试数据的最大公约数和最小公倍数 样例输入
-
3 6 6 12 11 33 22
样例输出
-
6 6 1 132 11 66
#include <iostream>
using namespace std;
int fMax(int lhs, int rhs)
{
if (lhs<rhs)
{
lhs = lhs^rhs;
rhs = lhs^rhs;
lhs = lhs^rhs;
}
while (lhs%rhs)
{
int t = lhs;
lhs = rhs;
rhs = t%rhs;
}
return rhs;
}
int fMin(int lhs, int rhs)
{
return lhs*rhs/fMax(lhs,rhs);
}
int main()
{
int n, m1, m2, m_max, m_min;
cin >> n;
while (n--)
{
cin >> m1 >> m2;
cout << fMax(m1, m2) << " " << fMin(m1, m2) << endl;
}
return 0;
}