Iriton's log

[C/BOJ] 1978번: 소수 찾기 본문

Problem Solving/C,C++

[C/BOJ] 1978번: 소수 찾기

Iriton 2023. 10. 11. 11:14

문제


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

 

입력


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

 

출력


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

 

풀이


소수는 1과 자기자신만을 약수로 가지는 수이다.

주어진 숫자가 소수인지 판별하여 소수인 경우 개수를 세고 최종적으로 개수를 출력하면 된다.

#include <stdio.h>

int is_prime(int num) {
    if (num < 2)
        return 0;  // 소수가 아님

    for (int i = 2; i * i <= num; ++i) {
        if (num % i == 0)
            return 0;  // 소수가 아님
    }

    return 1;  // 소수임
}

int main() {
    int n;
    scanf("%d", &n);

    int count = 0;
    for (int i = 0; i < n; ++i) {
        int num;
        scanf("%d", &num);

        if (is_prime(num))
            count++;
    }

    printf("%d\n", count);

    return 0;
}
Comments