알고리즘 문제/BOJ
11653번 소인수분해
parkit
2019. 1. 4. 17:04
728x90
반응형
https://www.acmicpc.net/problem/11653
입력 숫자 범위에 자연수 1도 포함이길래,
1일 때는 1을 출력하게 예외 처리를 했는데
생각해보니 1을 소인수분해하면, 아무것도 없다.
따라서, 1을 입력하면, 아무것도 출력을 해서는 안 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <iostream> #include <queue> #include <stack> #include <cstdio> #include <vector> #include <cstring> #include <string> #include <math.h> #include <algorithm> #include <map> using namespace std; int main(void) { int N = 0, i = 2; scanf("%d", &N); vector<int> v; while(N != 1) { while (N % i == 0) { v.push_back(i); N /= i; } ++i; } sort(v.begin(), v.end()); for (auto i : v) printf("%d\n", i); return 0; } | cs |
728x90
반응형