less than 1 minute read

❓문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

✏️입력

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

📜출력

주어진 수들 중 소수의 개수를 출력한다.

💻코드

/*
	 [백준 1978] 소수찾기 
	  22-08-03 / c++

	  < 문제 >

	  주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

	  < 알고리즘 >

	  소수 판별하기
	  1. 숫자 입력받고 N,
	  2. N까지 반복문을 돌리며 N을 나눠본다.
	  3. 나머지가 0이 나오는 숫자가 있으면 소수가 아니므로 패스한다
	  4. 이때, 1과 2는 for문을 돌리지 않고 미리 값을 리턴해준다
 */

#include<iostream>

using namespace std;

bool isPrime(int N) {
	if (N == 1) {
		return false;
	}
	if (N == 2) {
		return true;
	}
	for (int k = 2; k < N; k++) {
		if (N % k == 0) {
			return false;
		}
	}
	return true;
}

int main(void) {
	int N; // 숫자 개수
	cin >> N;

	int cnt = 0;
	int *arr = new int[N];		//숫자 입력받기
	
	for (int i = 0; i < N; i++)
	{
		cin >> arr[i];
	}
	for (int i = 0; i < N; i++) {
		if (isPrime(arr[i])) {
			cnt++;
		}
	}
	cout << cnt;
	return 0;
}