def solution(lst):
    max_num = max(lst);
    print("max_num", max_num)
    empty_lst = [];
    for i in range(2, max_num+1):
        for j in range(len(lst)):
            if lst[j] % i == 0:
                if i not in empty_lst:
                    empty_lst.append(i)
                lst[j] = lst[j] // i;
    num = 1;
    for k in (empty_lst + lst):
        num *= k
    return num

의도는 위에 그림과 같았으나 실제론 몇개의 문제는 틀렸다. 왜냐하면 나누는 수가 소수여야하기 때문

이 문제를 푸는 방법중 하나는 모든 리스트 중 2개씩 뽑아서 그들의 약수를 구한 후 그 수와 다음수를 다시 반복 하는 식으로 하면 된다고 한다.

+ Recent posts