문제
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
출력
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
정답비율
53.654%
N = int(input())
while N != 1 :
for i in range(2,N+1):
if N%i == 0:
print(i)
N = int(N/i)
break
while문을 통해 N이 1이 될 때 까지 분해시켜주었다. for문에서는 2부터 N까지 숫자를 이용하여 소인수분해를 진행시켰다. 나머지가 0인경우 소인수로 판단하여 출력시키고, N을 분해된 값으로 변환 시켰다. 이 때 i로 나누면서 float형식이 되므로 int로 변환시켜 다음 for문에서 재사용되도록 하였다.
참고
'Problem Solving > Baekjoon Online Judge' 카테고리의 다른 글
<재귀> 10872번 팩토리얼 with 파이썬 (0) | 2021.01.18 |
---|---|
<수학2> 1002번 터렛 with 파이썬 (0) | 2021.01.15 |
<수학2> 3053번 택시 기하학 with 파이썬 (0) | 2021.01.11 |
<수학2> 4153번 직각삼각형 with 파이썬 (0) | 2021.01.08 |
<수학2> 3009번 네 번째 점 with 파이썬 (0) | 2021.01.06 |