문제 : https://www.acmicpc.net/problem/2609
참고 : https://myjamong.tistory.com/138
1) 2개의 자연수 a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면 (단 a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r0를 구하고, 다시 r을 r0로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다.
https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95
2) 최대공배수(lcm)는 a * b / gcm
let input = readLine()!
func getGcd(_ a: Int, _ b: Int) -> Int {
if a % b == 0 {
return b
} else {
return getGcd(b, a % b)
}
}
let ints = input.split(separator: " ").map{Int($0)!}
let a = ints.max()!
let b = ints.min()!
let gcd = getGcd(a, b)
let lcm = a * b / gcd
print(gcd)
print(lcm)