백준 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 |
댓글