Blog Content

    티스토리 뷰

    1929번 백준(Baekjoon)

    <문제>


    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
    31
    #include <iostream>
    #include <cstdio>
     
    using namespace std;
     
    int num[1000001];
     
    int main()
    {
        int m, n;
        scanf("%d%d"&m, &n);
        num[1= 1// 1은 제외하고 2부터 시작하기 위함
     
        // 최초의 소수를 찾고 이것을 제외한 배수를 지워나감 
        // ex) 소수 2를 찾고 2를 제외한 배수를 전부지움 이후 다음 소수 3을 찾고 그의 배수를 지움 다시 소수를 찾고 반복
        for (int i = 2; i <= n; i++)
        {
            if (num[i] == 0) {
                for (int j = 2; n >= i * j; j++)
                {
                    num[i * j] = 1;
                }
            }
        }
        for (int i = m; i <= n; i++)
        {
            if(num[i] == 0)
                printf("%d\n", i);
        }
        return 0
    }
    cs


    'C++ 문제풀이' 카테고리의 다른 글

    1463번 백준(Baekjoon)  (0) 2018.09.30
    1697번 백준(Baekjoon)  (0) 2018.09.24
    1157번 백준(Baekjoon)  (0) 2018.09.06
    8958번 백준(Baekjoon)  (0) 2018.09.05
    1152번 백준(Baekjoon)  (0) 2018.09.04

    Comments