문제 |
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 |