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 Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		long total = 1;
		long A = sc.nextInt();
		long B = sc.nextInt();
		//A>B←条件　?がifの役割 A:B 左がtrue,右がfalse
		long c = A>B? A:B;
		List<Long> list = new ArrayList<Long>();
		boolean bool = true;
		//boolにfalseが入るまで繰り返す。
		while(bool) {

			for(long i = c; i <= c ;i--  ) {
				if(A%i == 0 && B%i ==0) {
					list.add(i);
					A = A / i;
					B = B / i;
					break;
				}
				if(i <= 2) {
					bool = false;
					break;

				}
			}

		}
		list.add(A);
		list.add(B);
		for(int i = 0; i < list.size(); i++) {
			total = total * list.get(i);
		}
		System.out.println(total);
	}

}