코드1
#include <iostream>
int main()
{
int count = 0;
int n, num;
int distinction = 0;
std::cin >> n;
for (int i = 0; i < n; i++) {
std::cin >> num;
if (num != 1) {
for (int i = 1; i < num + 1; i++) {
if (num % i == 0) {
distinction += 1;
if (distinction > 2) break;
}
}
}
if (distinction == 2) ++count;
distinction = 0;
}
std::cout << count;
return 0;
}
distinction 변수가 반복문이 끝났을 때 2이면 1과 숫자 본인자신으로만 나눠진 경우라 할 수 있습니다. 그래서 이 경우에 count를 증가시켜서 소수 개수를 구하였습니다.
'역시 내 문제해결 알고리즘은 잘못됐다' 카테고리의 다른 글
백준 10989번 수 정렬하기3 [C/C++] (0) | 2021.02.21 |
---|---|
백준 2908번 C/C++ (0) | 2021.01.03 |
백준 2577번 C/C++ (0) | 2021.01.03 |
백준 1157번 C/C++ (0) | 2020.12.31 |
백준 1546번 C/C++ (0) | 2020.12.30 |