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: Accepted)

#include <stdio.h>

int max(int p0,int p1){
  return(p0>p1?p0:p1);
}
int main(){
  long a,m;
  int i,j,l[2][100000],np,p[100000];
  p[0]=2;
  np=1;
  for(i=3;i<100000;i+=2){
    for(j=1;j<np;j++){
      if(i%p[j]==0) break;
    }
    if(j==np){
      p[np]=i;
      np++;
    }
  }
  for(i=0;i<2;i++){
    scanf("%ld",&a);
    for(j=0;j<np;j++){
      l[i][j]=0;
      while(a%p[j]==0){
        a/=p[j];
        l[i][j]++;
      }
    }
  }
  m=1;
  for(i=0;i<np;i++){
    for(j=max(l[0][i],l[1][i]);j>0;j--){
      m*=(long)p[i];
    }
  }
  printf("%ld",m);
  return(0);
}