장성호's
장성호's blog
장성호's
  • 분류 전체보기
    • 알고리즘
      • 백준
      • 이론
    • WEB
      • Spring 인강
      • 네트워크
    • 개인 프로젝트
      • 쇼핑몰 만들기

블로그 메뉴

  • 홈
  • 깃허브
전체 방문자
오늘
어제
반응형
hELLO · Designed By 정상우.
장성호's

장성호's blog

[C++] BOJ 11653 소인수분해
알고리즘/백준

[C++] BOJ 11653 소인수분해

2022. 1. 24. 18:36
반응형

문제 출처

백준 온라인 저지

https://www.acmicpc.net/problem/11653

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

 

문제 

 

입 / 출력

 

 

풀이

우선 에라스토테네스의 체로 소수를 구해준뒤 vector에 넣어준 뒤,

입력 받은 수가 0일 될 때까지 가능한 소수로 나누어 준 뒤

해당 소수들을 출력해서 해결할 수 있다.

 

코드

#include <iostream>
#include <vector>

using namespace std;

const int MAX = 10000001;
int arr[MAX] = {
    0,
};
int n;
vector<int> idx;
vector<int> result;
int main() {

  for (int i = 2; i < MAX; i++) {
    arr[i] = i;
  }

  for (int i = 2; i < MAX; i++) {
    if (arr[i] == 0)
      continue;
    for (int j = 2 * i; j < MAX; j += i) {
      arr[j] = 0;
    }
  }
  for (int i = 2; i < MAX; i++) {
    if (arr[i] != 0)
      idx.push_back(arr[i]);
  }

  cin >> n;

  for (int i = 0; i < idx.size();) {
    if (n == 0)
      break;
    if (n % idx[i] == 0) {
      result.push_back(idx[i]);
      n /= idx[i];
    } else
      i++;
  }
  for (int i = 0; i < result.size(); i++) {
    cout << result[i] << "\n";
  }
}

반응형
저작자표시 비영리 변경금지 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[C++] BOJ 10451 순열사이클  (0) 2022.01.24
[C++] BOJ 2004 조합 0의 개수  (0) 2022.01.24
[C++] BOJ 6588 골드바흐의 추측  (0) 2022.01.24
[C++] BOJ 1978 소수 찾기  (0) 2022.01.18
[C++] BOJ 11576 Base Conversion  (0) 2022.01.18
    '알고리즘/백준' 카테고리의 다른 글
    • [C++] BOJ 10451 순열사이클
    • [C++] BOJ 2004 조합 0의 개수
    • [C++] BOJ 6588 골드바흐의 추측
    • [C++] BOJ 1978 소수 찾기
    장성호's
    장성호's
    장성호's 개발 공부 블로그

    티스토리툴바