1 min read

1978 소수 판별

별거 아닌데.. 심심삼아..풀어보았다..

전체적인 로직은 짝수는 2제외하고 전부 소수가 아니다.

홀수이면 해당값의 루트를 구하여 소수인지 판별한다.

에라토스테네스 체도 있지만… 이문제는 그런거 신경안써도..충분히 풀수 있고.

isPrime만 있으면 쉽게 에라토스테네스체를 구현가능하다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int i, j;
bool isPrime(int n)
{
    if (n <= 1)
        return false;
    if ((n & 1== 0)
        return (n == 2);
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }
    return true;
}
int main() {
    int  m;
    int count = 0;
    std::cin >> m;
    for (int i = 0; i < m; ++i) {
        int val;
        cin >> val;
        if (isPrime(val))
            count++;
    }
    std::cout << count;
}
cs