본문 바로가기

problem solving

1929번: 소수 구하기

알고리즘 분류를 보기 전까지 한참 해맸다.

시간초과를 해결하는 게 관건인데

에라토스테네스의 체를 이용해 해결할 수 있다.

#include <iostream>
    
int check[1000001= { 0 };
 
int main(void) {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);
 
    int min, max;
    std::cin >> min >> max;
 
    check[1= 1;
    for (int i = 2; i <= max; i++) {
        int cur = i;
        int count = 2;
        while (cur * count <= max) {
            check[cur * count] = 1;
            count++;
        }
        if (!check[i]) {
        }
    }
 
    for (int i = min; i <= max; i++) {
        if (check[i]) continue;
        std::cout << i << "\n";
    }
 
    return 0;
}
cs

'problem solving' 카테고리의 다른 글

1517번: 버블 소트  (0) 2020.02.24
1991번: 트리 순회  (0) 2020.02.23
1759번: 암호 만들기  (0) 2020.02.22
1525번: 퍼즐  (0) 2020.02.22
1208번: 부분수열의 합2  (0) 2020.02.20