[프로그래머스 Lv.1] 최대공약수와 최소공배수

shin·2022년 11월 22일
0

CodingTest 문제 풀이

목록 보기
62/79

[프로그래머스 Lv.1] 최대공약수와 최소공배수

def solution(n, m):
    answer = []
    arrN = []
    arrM = []
    # n의 공약수
    for i in range(1, n + 1):
        if n % i == 0:
            arrN.append(i)
    # m의 공약수
    for i in range(1, m + 1):
        if m % i == 0:
            arrM.append(i)
    # 최대공약수 구하기
    for i in range(len(arrN) - 1, -1, -1):
        if arrN[i] in arrM:
            answer.append(arrN[i])
            break
        
    arr2N = []
    arr2M = []
    index = 0
    # 최소공배수 구하기
    while True:
        arr2N.append(n * (index + 1))
        arr2M.append(m * (index + 1))
        if arr2N[index] in arr2M:
            answer.append(arr2N[index])
            break
        if arr2M[index] in arr2N:
            answer.append(arr2M[index])
            break
        index += 1
    return answer
profile
Backend development

0개의 댓글