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>
int main()
{
    int A,B,i,Atmp,Btmp;
    int a[100000]={0},b[100000]={0},c[100000]={0};
    double n=1;
    scanf("%d %d",&A,&B);
    Atmp=A;
    Btmp=B;
    for(i=2;i<100000;i++){
        if(A%i==0){
            a[i]+=1;
            A=A/i;
            i--;
        }
    }
    for(i=2;i<100000;i++){
        if(B%i==0){
            b[i]+=1;
            B=B/i;
            i--;
        }
    }
    for(i=2;i<100000;i++){
        if(a[i]!=0 && b[i]!=0){
            a[i]--;
            b[i]--;
            c[i]++;
            i--;
        }
    }
    for(i=2;i<100000;i++){
        if(c[i]!=0){
            n*=i;
            c[i]--;
        }
    }
    //printf("%d\n",n);
    Atmp=Atmp/n;
    Btmp=Btmp/n;
    n=n*Atmp*Btmp;
    printf("%.0f\n",n);
    return 0;
}