본문 바로가기

PS/BOJ

[C++] BOJ (백준) 1978 : 소수 찾기

문제

1978번: 소수 찾기 (acmicpc.net)

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

코드
#include <iostream>
#include <vector>

#define SIZE 1000

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    vector<bool> isPrime(SIZE + 1, true);
    isPrime[1] = false;
    for (int i = 2; i * i <= SIZE; i++) {
        if (!isPrime[i]) continue;
        for (int j = i * i; j <= SIZE; j += i) {
            isPrime[j] = false;
        }
    }

    int cnt = 0;
    int n;
    cin >> n;
    while (n--) {
        int num;
        cin >> num;
        if (isPrime[num]) cnt++;
    }
    cout << cnt;
    return 0;
}

 

설명

에라토스테네스의 체 알고리즘을 이용하여 1000 이하의 소수를 판별한다.

'PS > BOJ' 카테고리의 다른 글

[C++] BOJ (백준) 2164 : 카드2  (0) 2022.12.25
[C++] BOJ (백준) 2108 : 통계학  (0) 2022.12.24
[C++] BOJ (백준) 1966 : 프린터 큐  (0) 2022.12.23
[C++] BOJ (백준) 1929 : 소수 구하기  (0) 2022.09.15
[C++] BOJ (백준) 1920 : 수 찾기  (0) 2022.09.14