728x90
문제 접근법
단계별로 분류해서 접근했다.
1. 나누는 숫자가 소수인지 판단
2. 소수가 맞다면 주어진 N을 나눴을 때 나머지가 없다면 N = N / div하고 출력 아니라면 div++
3. 나누다가 N이 1이라면 종료
느낀점
생각한 접근법으로 시도했는데 맞게 나오지만 시간 초과... 전에 소수문제가 나와서 소수인지를 꼭 판단해야할 줄 알았는데 그게 아니었다. 이후 코드를 최소화 하고 재도전했는데 성공! 아직 코드가 깔끔하지 않은 것 같다.
코드
#include <stdio.h>
int main() {
int n, i = 2;
scanf("%d", &n);
while (1) {
if (n % i == 0) {
printf("%d\n", i);
n /= i;
}
else i++;
if (n == 1) break;
}
return 0;
}
'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[C] 백준 1085번 : 직사각형에서 탈출 (0) | 2021.03.19 |
---|---|
[C] 백준 9020번 : 골드바흐의 추측 (0) | 2021.03.18 |
[C] 백준 4948번 : 베르트랑 공준 (0) | 2021.03.17 |
[C] 백준 1929번 : 소수 구하기 (0) | 2021.03.16 |
그 동안의 1일 1코딩 실천 (0) | 2021.03.15 |
댓글