최대 1 분 소요

문제

숫자 N이 주어질 때 N을 소인수 분해하면 2^a+3^b+5^c+7^d+11^e입니다.

이때 a, b, c, d, e를 출력하세요.

생각해보기Permalink

a,b,c,d,e를 위해서 [0, 0, 0, 0, 0]를 만들어 놓고 나머지를 구합니다.

어떤 수로 나눴을 때 나머지가 나오지 않는다면 그 값이 다시 N에 저장하고 같은 수로 나눴을 때 나머지가 나오면 카운트하고 다른 수로 저장한 N을 나눕니다.

나머지가 나오지 않는다면 그 값으로 또 나누고 카운트 하도록 만들어 보겠습니다.

풀어보기Permalink

T = int(input())
for tc in range(1, T+1):
    N = int(input())
    numbers = [2, 3, 5, 7, 11]
    count = [0]*5
    d = 0
    while d < 5:
        if N % numbers[d] == 0:
            N = N // numbers[d]
            count[d] += 1
        else:
            d += 1
    print(f'#{tc}',*count)

카테고리:

업데이트:

댓글남기기