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 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<stdio.h>
#include<math.h>

int main(void) {
	int A, B,i,j;
	int s = 1;
	int a[100001]={ 0 };
	int b[100001] = { 0 };
	scanf("%d %d", &A, &B);
	if (A == 100000 || B == 100000) {
		//printf("%d\n%d\n", A, B);
		//printf("%d\n", A*B);
		return 0;
	}
	i = 2;
	while (A>1) {
		if (A%i == 0) {
			a[i]++;
			A /= i;
			//printf("%d ", A);
		}
		else {
			i++;
		}
	}
	//printf("\n");
	j = 2;
	while (B>1) {
		if (B%j == 0) {
			b[j]++;
			B /= j;
			//printf("%d ", B);
		}
		else {
			j++;
		}
	}
	//printf("\n");
	if (j > i) { i = j; }
	for (j = 2; j <= i; j++) {
		if (a[j] > b[j]) 
			s *= pow(j, a[j]);
		else {
			s *= pow(j, b[j]);
		}
	}
	printf("%d\n", s);
	return 0;
}