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 Ruby (2.3.3) (judge verdict: Accepted)

def prime_decomposition(a)
  division = 1
  primes = {}
  while a > 1
    division += 1
    next if a % division != 0

    while a % division == 0
      if primes[division.to_s]
      	primes[division.to_s] += 1
      else
        primes[division.to_s] = 1
      end
      a /= division
    end
  end
  primes
end

def get_lcm(a, b)
  a_prime = prime_decomposition(a)
  b_prime = prime_decomposition(b)
  lcm = 1

  [a_prime.keys, b_prime.keys].flatten.uniq.each do |key|
    if a_prime[key] && b_prime[key]
      lcm *= key.to_i ** [a_prime[key], b_prime[key]].max
    elsif a_prime[key]
      lcm *= key.to_i ** a_prime[key]
    else
      lcm *= key.to_i ** b_prime[key]
    end
  end
  lcm
end

a, b = gets.split("\s").map(&:to_i)
print get_lcm(a, b)