백준 1978 소수 찾기 C++
2023. 9. 16. 18:33ㆍ알고리즘문제 풀이/백준
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
풀이
에라토스테네스의 체를 이용한다.
참고정보:
에라토스테네스의 체 위키백과
코드
#include <iostream>
using namespace std;
int main() {
int N, k, count=0;
//Seive of Eratosthenes
bool *primeArray = new bool[1001];
primeArray[1] = false;
for (int i = 2; i <= 1000; i++)
primeArray[i] = true;
for (int i = 2; i * i <= 1000; i++) {
if(primeArray[i])
for (int j = i * i; j <= 1000; j += i) {
primeArray[j] = false;
}
}
//N is the number of test case
cin >> N;
//check if test case is prime number
for (int i = 0; i < N; i++) {
cin >> k;
if (primeArray[k]) count++;
}
cout << count;
}'알고리즘문제 풀이 > 백준' 카테고리의 다른 글
| 백준 2164 카드2 C++ (0) | 2023.09.16 |
|---|---|
| 백준 2042 구간 합 구하기 C++ (0) | 2023.09.16 |
| 백준 1967 트리의 지름 C++ (0) | 2023.09.16 |
| 백준 1931 회의실 배정 C++ (0) | 2023.09.16 |
| 백준 1924 2007년 Python (0) | 2023.09.16 |