링크 : https://www.acmicpc.net/problem/11653
- 문제


- 설계하기(접근방법)
1. 정수 n을 입력받는다.
2. 소인수분해 하는법
작은 소수부터 반복적으로 나누며 출력한다.
더 이상 나눠지지 않으면 다음 소수로 진행한다.
마지막에 몫이 1인 된 순간 종료한다.
- 코드(출력)
n = int(input())
if (n == 1):
print('')
for i in range(2, n + 1):
if (n % i == 0):
while (n % i == 0):
n /= i
print(i)
- 얻어갈 부분
1. 처음에 코드를 짤 때 n 보다 작은 소수를 다 구해놓고 n을 소수로 나누었다. 하지만 작은수 i부터 더 이상 나누어 떨어지지 않을 때 까지 진행하면 뒤의 i의 배수는 자동적으로 제거가 되는데 이 사실을 간과해서 시간초과가 일어났다.
'알고리즘(백준) > 기타' 카테고리의 다른 글
| [백준] 4948번 : 베르트랑 공준 - python (0) | 2023.02.14 |
|---|---|
| [백준] 1929번 : 소수 구하기 - python (0) | 2023.02.13 |
| [백준] 2581번 : 소수 - python (0) | 2023.02.11 |
| [백준] 1978번 : 소수 찾기 - python (0) | 2023.02.10 |
| [백준] 2775번 : 부녀회장이 될테야 - python (0) | 2023.02.08 |