문제번호 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이라면 아무것도 출력되지 않는다.
'프로그래밍 > 파이썬 python' 카테고리의 다른 글
단계별로 풀어보기 10 - 기하 : 직사각형과 삼각형(2) (0) | 2023.08.17 |
---|---|
단계별로 풀어보기 10 - 기하 : 직사각형과 삼각형 (0) | 2023.08.16 |
단계별로 풀어보기 9 - 약수, 배수와 소수(3) (0) | 2023.08.14 |
단계별로 풀어보기 9 - 약수, 배수와 소수(2) (0) | 2023.08.13 |
단계별로 풀어보기 9 - 약수, 배수와 소수(1) (0) | 2023.08.12 |