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 Rust (1.15.1) (judge verdict: Accepted)

use std::io::{self, Read};

fn gcd(x: i64, y: i64) -> i64 {
	let mut a = x;
	let mut b = y;
	while (b != 0) {
		let t = b;
		b = a % b;
		a = t;
	}
	return a;
}

fn main() {
	let mut input = String::new();
	let _ = io::stdin().read_to_string(&mut input);
	let lines: Vec<&str> = input.split("\n").collect();	
	let (A, B) = {
		let numbers: Vec<i64> = lines[0].split(" ").map(|x| x.parse::<i64>().unwrap_or(0)).collect();
		(numbers[0], numbers[1])
	};
	println!("{}", A * B / gcd(A, B));
}