코딩테스트/SW Expert Academy

[D2] 1945. 간단한 소인수분해

2024. 10. 11. 09:25

1945. 간단한 소인수분해

 

✏️ 문제 풀이

-  enumerate를 통해 소수의 인덱스(i)와 값을(prime) 함께 가져옴.

enumerate(iterable, start=0)
iterable: 반복 가능한 객체 (예: 리스트, 튜플 등).
start: 인덱스 시작 번호 (기본값은 0)

 

-  ( N )이 현재 소수로 나누어 떨어질 때마다 해당 소수의 지수를 하나 증가

T = int(input())

for tc in range(1, T + 1):
    N = int(input())
    
    # 소수 리스트
    primes = [2, 3, 5, 7, 11]
    # 각 소수의 지수를 저장할 변수
    a = b = c = d = e = 0

    # 소인수 분해
    for i, prime in enumerate(primes):
        while N % prime == 0:
            if i == 0:
                a += 1
            elif i == 1:
                b += 1
            elif i == 2:
                c += 1
            elif i == 3:
                d += 1
            elif i == 4:
                e += 1
            N //= prime  # N을 소수로 나누어 갱신

    print(f'#{tc} {a} {b} {c} {d} {e}')