• m부터 n까지의 소수를 구하는 문제 


    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
    #define N 1000000
    #include <iostream>
    using namespace std;
     
    bool prime[N+1]; // true 소수 x, false 소수 o
     
    int main()
    {
        prime[0] = prime[1] = true;
        for (int i = 2; i*i <= N; i++) {
            if (prime[i] == false) {
                for (int j = i*i; j <= N; j+=i) {
                    prime[j] = true;
                }
            }
        }
         
        int m, n;
        cin >> m >> n;
        cin.sync_with_stdio(false);
     
        for (int i = m; i <= n; i++) {
            if (prime[i] == false)
                // cout << i << endl;
                // cout은 stdio와의 동기화 때문에 느림 -> sync_with_stdio를 false
                // endl을 하게되면 매번 출력 버퍼를 비움 -> '\n'으로 개행
                cout << i << "\n";
        }
        return 0;
    }


'Algorithm' 카테고리의 다른 글

Dynamic Programming  (0) 2016.04.04
알고리즘 - 보간 탐색  (0) 2015.11.14
알고리즘 - 이진 탐색  (0) 2015.11.14
알고리즘 - 순차 탐색  (1) 2015.11.14
알고리즘 - 위상 정렬  (0) 2015.11.14

+ Recent posts