프로그래밍/파이썬 python

단계별로 풀어보기 9 - 약수, 배수와 소수(4)

idealtrue 2023. 8. 15. 23:48
728x90

문제번호 11653번 소인수분해

 

첫째 줄에 정수 N이 입력된다. N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력해야 한다. N이 1인 경우 아무것도 출력하지 않는다.

 

답안 :

1  N = int(input())
2  while N != 1 :
3      for a in range(1, N+1) : # N의 약수찾기
4          divisor = []
5          if N % a == 0 :
6              divisor.append(a)
7      for b in divisor : # N의 약수중 소수 찾기
8          prime = []
9          for c in range(2,b+1) :
10             if b % c == 0 :
11                 prime.append(c)
12     factor = 0
13     for d in prime :
14         if N % d == 0 :
15             N, factor = N // d, d
16             print(factor)
17             break
18 if N == 1 :
19     None

 

comment :

# 백준 채점이 채점중이라고만 뜨는 오류가 있어 정답인지는 확실하지 않지만, 테스트 코드는 모두 정상으로 작동하기 때문에 답안을 넣었다.

# N을 입력받고, N이 1이 될 때까지 N의 첫 번째 소수인 약수로 약분을 하고 N을 약분된 숫자로 바꾸어 반복하는 코드를 작성하였다.

# 만약 N이 1이라면 아무것도 출력되지 않는다.

728x90