Problem:
Score : 300 points

Problem Statement

Takahashi is organizing a party.

At the party, each guest will receive one or more snack pieces.

Takahashi predicts that the number of guests at this party will be A or B.

Find the minimum number of pieces that can be evenly distributed to the guests in both of the cases predicted.

We assume that a piece cannot be divided and distributed to multiple guests.

Constraints

1 \leq A, B \leq 10^5

A \neq B

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B

Output

Print the minimum number of pieces that can be evenly distributed to the guests in both of the cases with A guests and B guests.

Sample Input 1

2 3

Sample Output 1

6

When we have six snack pieces, each guest can take three pieces if we have two guests, and each guest can take two if we have three guests.

Sample Input 2

123 456

Sample Output 2

18696

Sample Input 3

100000 99999

Sample Output 3

9999900000

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<bits/stdc++.h>
using namespace std;

int main()
{
	int A, B;
	long long max = 0;
	long long ans = 1;


	map<int, int> m_a, m_b;

	cin >> A >> B;

	while (A != 1)
	{
		for (int i = 2; i <= A; i++)
		{
			if (A%i == 0)
			{
				m_a[i] += 1;
				if (max < i)max = i;
				A = A / i;
				continue;
			}
		}
	}

	while (B != 1)
	{
		for (int i = 2; i <= B; i++)
		{
			if (B%i == 0)
			{
				m_b[i] += 1;
				if (max < i)max = i;
				B = B / i;
				continue;
			}
		}
	}

	for (int i = 2; i <= max; i++)
	{
		if (m_a[i] > 0 || m_b[i] > 0)
		{
			if (m_a[i] >= m_b[i])
			{
				ans *= pow(i, m_a[i]);
			}
			else
			{
				ans *= pow(i, m_b[i]);
			}
		}
	}

	cout << ans << endl;
	return 0;
}