lcm
을 1로 초기화 한다.
arr
를 for 문 돌면서, lcm
과 현재 숫자의 lcm
을 구하여 업데이트 한다.
lcm
을 반환한다.
arr: 2 6 8 14
lcm
2 2
2 * 3 2 * 3
2 * 2 * 2 2 * 2 * 2 * 3
2 * 7 2 * 2 * 2 * 3 * 7
def solution(arr):
size = len(arr)
lcm = 1
for n in arr:
lcm = lcm * n / gcd(lcm, n)
return lcm
def gcd(a, b):
if a % b == 0:
return b
return gcd(b, a % b)
fun solution(arr: IntArray): Int =
arr.fold(1) { lcm, n ->
lcm * n / gcd(lcm, n)
}
fun gcd(a: Int, b: Int): Int {
if (a % b == 0) return b
return gcd(b, a % b)
}