문제설명

 

소스코드

#include <iostream>
using namespace std;
int main()
{
	int N, input; int count = 0;
	bool flag = false;
	cin >> N;
	for (int i = 0; i < N; ++i)
	{
		cin >> input;
		for (int j = 2; j < input; ++j) //1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수.
		{ //즉, 1과 자기 자신 외에 수로 나누어 떨어지면 소수가 아님
			if (flag == true) break; // 소수가 아니라고 이미 판정되었으면 반복할 필요가 없음
			if (input % j == 0) flag = true; //1과 자기 자신 외에 수로 나누어 떨어지면 flag = true
		}
		if (input == 1) continue; //1은 소수가 아님
		else if (flag == false) ++count; //위의 반복문을 벗어날 동안 flag가 false라면 소수임
		else flag = false; //플래그 초기화
	}
	cout << count;
}