c++

백준 c++ 1978 문제 풀이

psb08 2025. 4. 12. 01:43
728x90

문제 링크 : https://www.acmicpc.net/problem/1978

목차

1. 설명

 

2. 내 코드

 

3. 문제 풀이 해석 내용

 

4. 실행 결과

 

설명

백준 브론즈 3 문제 입니다.

문제명 : 소수 찾기

 

옛날에 풀고 블로그 작성까지 했었던 문제이지만, c++로 다시 풀어보았습니다.

 

내 코드

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;

bool isPrime(int num) 
{
    if (num <= 1) return false;

    for (int i = 2; i < num; i++)
    {
        if (num % i == 0)
            return false;
    }
    return true;
}


int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	std::cout.tie(NULL);


    int n, count = 0;
    cin >> n;

    vector<int> numbers(n);

    for (int i = 0; i < n; i++)
    {
        cin >> numbers[i];
        if (isPrime(numbers[i])) count++;
    }

    cout << count << endl;

}

 

문제 풀이 해석 내용

 

소수 확인 함수 정의

bool isPrime(int num) 
{
    if (num <= 1) return false;

    for (int i = 2; i < num; i++)
    {
        if (num % i == 0)
            return false;
    }
    return true;
}

isPrime 함수는 입력된 정수 num이 소수인지 확인합니다.


num이 1 이하인 경우, 소수가 아니므로 false를 반환합니다.
2부터 num - 1까지의 모든 정수로 num을 나누어, 나누어 떨어지는 경우가 있으면 소수가 아니므로 false를 반환합니다.
어떤 경우에도 나누어 떨어지지 않으면 소수이므로 true를 반환합니다.

 

 

메인 함수 정의

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    std::cout.tie(NULL);

프로그램의 시작점인 main 함수를 정의하고, 입출력을 더 빠르게 하기 위해 C++의 동기화를 비활성화합니다.

 

 

입력 처리 및 소수 개수 세기

int n, count = 0;
cin >> n;

vector<int> numbers(n);

for (int i = 0; i < n; i++)
{
    cin >> numbers[i];
    if (isPrime(numbers[i])) count++;
}

사용자로부터 정수 n을 입력받아, 이후에 입력할 숫자의 개수를 나타냅니다.
크기 n인 numbers 벡터를 생성합니다.
for 루프를 통해 n개의 정수를 입력받고, 각 숫자가 소수인지 확인하여 소수인 경우 count를 증가시킵니다.

 

 

결과 출력

cout << count << endl;

최종적으로 소수의 개수를 출력합니다.

 

 

실행 결과

 

728x90

'c++' 카테고리의 다른 글

백준 c++ 10103 문제 풀이  (0) 2025.04.15
백준 c++ 1157 문제 풀이  (0) 2025.04.13
백준 c++ 1085 문제 풀이  (0) 2025.04.11
백준 c++ 27433 문제 풀이  (0) 2025.04.10
백준 c++ 10870 문제 풀이  (0) 2025.04.09