문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.


입력

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.


출력

주어진 수들 중 소수의 개수를 출력한다.


코드

#include <iostream>
#include <cmath>

using namespace std;

static int IsPrimeNumber(int _number)
{
    // :: 예외처리
	if (_number == 1) return 0;
	if (_number == 2) return 1;
	
    // :: 2부터 sqrt(_number)까지 나누어 떨어지는 수가 있는지 확인한다.
    int i;
    for (i = 2; i <= sqrt(_number); i++) if (_number % i == 0) return 0;

    // :: 소수인 경우
    return 1;
}
int main()
{   
    // :: 문제
    // :: 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
    // :: 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
    // :: 주어진 수들 중 소수의 개수를 출력한다.

    // :: 1. N개의 수를 입력받는다.
    int N;
    cin >> N;

    // :: 2. 소수인지 판별한다.
    int primeNumberCount = 0;
    for (int i = 0; i < N; i++)
    {
        int num;
        cin >> num;
        primeNumberCount += IsPrimeNumber(num);
    }

    // :: 3. 소수의 개수를 출력한다.
    cout << primeNumberCount << endl;

    return 0;
}

참고

'C++ > Baekjoon' 카테고리의 다른 글

백준 2581: 소수  (0) 2023.01.29
백준 11653: 소인수분해  (0) 2023.01.26
백준 1929: 소수 구하기  (0) 2023.01.24
백준 5597: 과제 안 내신 분..?  (0) 2022.12.23
백준 10807: 개수 세기  (0) 2022.12.17
블로그 이미지

RIsN

,