문제
정답 소스코드 (Python)
n=int(input())
i=2
while i <= n:
if n%i==0:
print(i)
n=n/i
else:
i=i+1
풀이 (Python)
이 문제의 경우 소수를 찾는 문제와 같이 "약수"를 찾는 것이 아닌 소인수 분해이기에 약수에 포함되는 2와 3 같은 경우 반복적으로 출력되어야 하는 형태를 가진다.
Point 1) 나누어 진다면 출력, 나누어지지 않는 경우 +1
위에서 말한 형태를 만족하기 위해서는 for문을 채용하는 것보다 while문을 통해
if n%i==0:
print(i)
n=n/i
i=2부터 증가 시키는데 나누어진다면 해당 i가 소인수로 출력이 되며, 종료조건인 n은 n/i로 변경한다.
'Baekjoon' 카테고리의 다른 글
[백준] 14940번 쉬운 최단거리 ( 파이썬) (1) | 2024.01.22 |
---|---|
[백준] 1929번 소수구하기 ( 파이썬 ) (0) | 2024.01.21 |
[백준] 1522번 문자열 교환 (파이썬) (0) | 2024.01.12 |
[백준] 20055번 컨베이어 벨트 위의 로봇 (파이썬) (0) | 2024.01.12 |
[백준] 2304번 창고 다각형 (파이썬) (0) | 2024.01.12 |