주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
(입력은 1000 이하의 자연수)
#include <stdio.h>
int main() {
int test, n, cnt, only = 0;
scanf("%d", &test);
for (int i = 0; i < test; i++) {
scanf("%d", &n);
cnt = 0; // 약수의 갯수 체크 및 초기화
for (int a = 1; a <= 1000; a++) {
if (n % a == 0)
cnt++;
}
if (cnt == 2) // 소수인지 아닌지 판별
only++;
}
printf("%d", only);
return 0;
}
이 문제는 소수 특징만 잘 알면 쉽게 풀 수 있는 문제다.
소수는 약수가 1과 자신뿐이니 약수가 2개인 수를 체크하면 끝이다.
이게 실버 4단계라고? 하면서 풀었다..
무슨 5분도 안걸리는데 다른 브론즈 문제는 이거보다 더 어렵다..