Description
Give you two integers, and calculate their GCD(Greatest Common Divisor) and LCM(Least Common Multiple). If both of them are positive, print the GCD and LCM. If some are invalid(zero or negative), print invalid
.
Sample Input 1
2 10
Sample Output 1
2 10
Sample Input 2
14 0
Sample Output 2
invalid
Hint
You may not learn the algorithms of calculating LCM and GCD in your primary school or middle school. So you can serach about them, or read the instruction in wikipedia about Least Common Multiple and Greatest Common Divisor.
#include<iostream>
using namespace std;
int main()
{
int a, b;
while (cin >> a >> b)
{
if (a > 0 && b > 0)
{
if (a%b == 0 || b%a == 0)
{
cout << (a > b ? b : a) <<" "<< (a > b ? a : b) << endl;
continue;
}
int i, gcd = 1, n = a > b ? b : a;
for (i = 1; i <= n; i++)
{
if (a%i == 0 && b%i == 0)
gcd = i;
}
cout << gcd << " " << a*b / gcd << endl;
}
else
cout << "invalid" << endl;
}
return 0;
}