func solution(_ arr:[Int]) -> Int {
if arr.count == 1 {
return arr[0]
}else {
var n = arr[0
]
for i in 1..<arr.count {
n = lcm(n, arr[i])
}
return n
}
}
func gcd(_ a: Int, _ b: Int) -> Int {
if b == 0 {
return a
}
else {
return gcd(b,a%b)
}
}
func lcm(_ a: Int, _ b : Int) -> Int {
return a * b / gcd(a,b)
}
func gcd(_ a: Int, _ b: Int) -> Int {
let r = a % b
if r != 0 {
return gcd(b, r)
} else {
return b
}
}
func lcm(_ m: Int, _ n: Int) -> Int {
return m / gcd(m, n) * n
}
func solution(_ arr:[Int]) -> Int {
return arr.reduce(1) { lcm($0, $1) }
}
유클리드 호제법을 잘 사용한거 같다.