문제:
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
from math import sqrt
N = int(input())
divide = 2
while divide <= sqrt(N):
if N % divide == 0:
print(divide)
N = N // divide
else:
divide += 1
if N > 1:
print(N)
결과:
반응형
'백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 25083번 새싹 (파이썬) (0) | 2022.08.22 |
---|---|
백준 알고리즘 2609번 최대공약수와 최소공배수 (파이썬) (0) | 2022.08.19 |
백준 알고리즘 2775번 부녀회장이 될테야 (파이썬) (0) | 2022.08.17 |
백준 알고리즘 2480번 주사위 세개 (파이썬) (0) | 2022.08.15 |
백준 알고리즘 1085번 직사각형에서 탈출 (파이썬) (0) | 2022.08.15 |