#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int cnt = n;
int num[100] = {
0,
};
for (int i = 0; i < n; i++)
{
cin >> num[i];
if (num[i] == 1)
cnt--;
}
for (int i = 0; i < n; i++)
{
for (int j = 2; j <= sqrt(num[i]); j++)
{
if (num[i] % j == 0)
{
cnt--;
break;
}
}
}
cout << cnt << endl;
return 0;
}
에라토스테네스의 체
0으로 초기화된 배열에 배수의 값들을 1로 바꿔 소수만 판별해낼 수 있는 방법
에라토스테네스의 체를 직접 구현하고,
배열에 담긴 1 3 5 7 을 하나씩 비교하면서 소수라고 판별되면 cnt를 증가하는 방법으로 진행하였음
에라토스테네스의 체 구현을 확실하게 하지 못해서, segmentation fault오류가 자꾸 났었다.
내가한 방법
1로 초기화된 배열에서 ch[i * 2] = 0;