본문 바로가기

개발자 세릴리/코딩테스트

[BOJ] Java - 1978번 문제풀이(소수찾기)

728x90
반응형

백준 1978번 소수찾기

BeakJoon 백준 1978번 소수찾기(Java)

 

시간 제한 메모리 제한 정답 비율
2 초 128 MB 46.601%

[문제]

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

[입력]

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

[출력]

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

[풀이]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        String[] input = br.readLine().split(" ");
        int[] list = new int[N];
        for(int i=0; i<N; i++) {
            list[i] = Integer.parseInt(input[i]);
        }
        int cnt=0;
        boolean isPrime = true;
        for(int i=0; i<N; i++) {
            if(list[i] == 1) continue;
            isPrime = true;
            for(int j=2; j<=Math.sqrt(list[i]); j++) {
                if(list[i]%j == 0) {
                    isPrime = false;
                    break;
                }
            }
            if(isPrime == true) cnt++;
        }
        System.out.println(cnt);
    }
}
728x90
반응형