문제설명
소스코드
#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;
}
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 9단계 - 11653번 문제 (소인수분해) (0) | 2023.05.13 |
---|---|
[C++] 백준 9단계 - 2581번 문제 (소수) (0) | 2023.05.12 |
[C++] 백준 9단계 - 9506번 문제 (약수들의 합) (0) | 2023.05.12 |
[C++] 백준 9단계 - 2501번 문제 (약수 구하기) (0) | 2023.05.11 |
[C++] 백준 9단계 - 5086번 문제 (배수와 약수) (0) | 2023.05.10 |