본문 바로가기
Baekjoon/[Code.plus] 알고리즘 기초 1/2

[BOJ/백준] 1978 소수 찾기

by 해적거북 2021. 7. 28.
728x90

● [문제번호 1978] 소수 찾기

https://www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

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

www.acmicpc.net

 

● 알아야 할 것

: 소수를 구하는 방법

 

● 풀이 과정

: 2부터 확인하려고하는 수 미만까지 반복하며 나눠지는 지 확인

: 나눠지면 합성수

: 반복문이 끝날 때까지 나눠지지 않으면 소수

 

● 주의 할 것

: 1은 합성수이고 반복문이 2부터 시작함으로 초기에 처리한다.

 

● 참고 할 것

: NULL

 

● 풀이 코드

#include <bits/stdc++.h>

using namespace std;

int N, test, cnt;

// test 값이 소수인지 확인하는 함수
bool decimal()
{
    // 1인 경우 합성수
    if(test == 1)
        return false;
    // 2인 경우 소수
    else if(test == 2)
        return true;
    // 그 외 확인 작업
    else
    {
        // 2부터 test값 미만까지 반복
        for(int t = 2; t < test; t++)
        {
            // test값과 나눠지면 합성수
            if(test % t == 0)
                return false;
        }
        // 나눠지지 않으면 소수
        return true;
    }
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    cin >> N;
    
    for(int n = 0; n < N; n++)
    {
        cin >> test;
        
        // 소수라면 갯수 추가
        if(decimal())
            cnt++;
    }
    
    cout << cnt;
    
    return 0;
}

 

 

● [백준] - [알고리즘 기초 1/2] - [300 - 수학 1] 문제집

번호 문제 번호 문제 이름 풀이 링크
1 10430 나머지 https://pirateturtle.tistory.com/180
2 2609 최대공약수와 최소공배수 https://pirateturtle.tistory.com/181
3 1934 최소공배수 https://pirateturtle.tistory.com/182
4 1978 소수 찾기 https://pirateturtle.tistory.com/183
5 1929 소수 구하기 https://pirateturtle.tistory.com/184
6 6588 골드바흐의 추측 https://pirateturtle.tistory.com/185
7 10872 팩토리얼 https://pirateturtle.tistory.com/186
8 1676 팩토리얼 0의 개수 https://pirateturtle.tistory.com/187
9 2004 조합 0의 개수 https://pirateturtle.tistory.com/188

 

728x90

댓글