-
BOJ #1978 소수 찾기BOJ 2021. 1. 15. 16:43
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
소스코드(C언어)
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int N; int test[110] = { 0 }; int iscmp[1100] = { 0 }; //0이면 소수, 1이면 복소수 scanf("%d", &N); for (int i = 0; i < N; i++) scanf("%d", &test[i]); iscmp[0] = iscmp[1] = 1; for (int i = 2; i <= 1000; i++) if (iscmp[i] == 0) for (int j = i + i; j <= 1000; j += i) iscmp[j] = 1; int num = 0; for (int i = 0; i < N; i++) { if (iscmp[test[i]] == 0) num++; } printf("%d\n", num); }
Idea
에라토스테네스의 체를 이용한다.
'BOJ' 카테고리의 다른 글
BOJ #2775 부녀회장이 될테야 (0) 2021.01.15 BOJ #2292 벌집 (0) 2021.01.15 BOJ #1016 제곱ㄴㄴ수 (0) 2021.01.14 BOJ #1629 곱셈 (0) 2021.01.14 BOJ #13171 A (0) 2021.01.14