Problem:
GCD and LCM

Write a program which computes the greatest common divisor (GCD) and the least common multiple (LCM) of given a and b.

Input

Input consists of several data sets. Each data set contains a and b separated by a single space in a line. The input terminates with EOF.

Constraints

0 < a, b ≤ 2,000,000,000

LCM(a, b) ≤ 2,000,000,000

The number of data sets ≤ 50

Output

For each data set, print GCD and LCM separated by a single space in a line.

Sample Input

8 6
50000000 30000000

Output for the Sample Input

2 24
10000000 150000000

Solution in Kotlin (judge verdict: Accepted)

import java.util.*
fun main(args: Array<String>) {

    val sc = Scanner(System.`in`)
    while (sc.hasNext()) {
        val list = Array(2, { sc.nextLong() })
        println(String.format("%d %d",gcd(list[0], list[1]),lcm(list[0], list[1])))
    }
    sc.close()
}

fun gcd(a: Long, b: Long): Long = if(a < b) gcd(b, a) else if(b == (0).toLong()) a else gcd(b, a % b)
fun lcm(a: Long, b: Long): Long = (a * b) / gcd(a, b)