728x90
https://www.acmicpc.net/problem/11653
11653번: 소인수분해
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
www.acmicpc.net
# 11653번 문제 : 소인수분해
# 입력된 수를 소인수분해하여 출력하는 문제
n=int(input())
i=2 # 가장 작은 소수는 2이기때문에 1부터 나눌필요없다
while n!=1: # 나누다 보면 끝은 1이되는데 끝이 올때까지 무한루프
switch=0 # 나누어지는 수가맞는지 판단하는 스위치
if(n%i==0): # 소수로 나누면 그 뒤로 소수가 아닌수로 나누어질 수 없다\
n/=i
switch=1
else:
i+=1 # 나누어지지 않는다면 수를 +1
if(switch==1): # 나누어 진 수만 출력
print(i)
소수찾기에 이어 기초 수학이라고 할 수 있는 소인수분해 구하기이다 넘어가고 다음 문제를 풀어볼까라는 생각도했지만 조금만 로직을 생각해봤는데 바로바로 코드가 짜여지는 느낌이 아니라 한번 짚어보고 넘어가보자는 의미에서 풀어봤다
728x90
'알고리즘' 카테고리의 다른 글
| 백준의 알고리즘 1929번 문제(python) (0) | 2021.06.15 |
|---|---|
| 백준의 알고리즘 4948번 문제(python) (0) | 2021.06.14 |
| 백준의 알고리즘 2581번 문제(python) (0) | 2021.06.12 |
| 백준의 알고리즘 1978번 문제(python) (0) | 2021.06.11 |
| 백준의 알고리즘 2869번 문제(python) (0) | 2021.06.10 |