[SWEA]1945. 간단한 소인수분해
문제
숫자 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)
댓글남기기