본문 바로가기
컴퓨터/C, C++

[C/C++] 백준 1978번 C언어

by stdFrog 2022. 6. 7.

백준 1978번

 

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

 

입력

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

 

출력

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

 

#include <stdio.h>

typedef enum {FALSE, TRUE} BOOL;

BOOL PrimeNumber(int n){
        if(n<2){return FALSE;}
        for(int i=2; i*i<=n; i++){
                if(n%i==0){return FALSE;}
        }
        return TRUE;
}

int main()
{
        int P,N, result;
        scanf("%d", &N);

        for(int i=0; i<N; i++){
                scanf("%d", &P);
                if(PrimeNumber(P)){ result++; }
        }
        printf("%d", result);
}

 

이건 오일러에서도 풀었던 문제다(소수의 합 - 에라토스테네스의 체).

물론 조금 다른데 이번 문제는 합이 아닌 개수만 출력하면 된다.

 

동작 자체가 간단하기 때문에 따로 설명은 필요없을 것 같다.

반응형

'컴퓨터 > C, C++' 카테고리의 다른 글

[C/C++] 백준 11653 C언어  (0) 2022.06.07
[C/C++] 백준 2581번 C언어  (0) 2022.06.07
[C/C++] 백준 10757번 C언어  (0) 2022.06.06
[C/C++] 백준 2839번 C언어  (0) 2022.06.03
[C/C++] 백준 2775번 C언어  (2) 2022.06.02

댓글