본문 바로가기

개발(합니다)/알고리즘&코테

알고리즘 단계별로 풀어보기 : BOJ-1978(소수구하기)

반응형

문제(출처)

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


입력

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 

다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.


출력

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


예제 입력

4

1 3 5 7


예제 출력

3


내 풀이

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

public class BOJ_1978 {
    public static void main(String args[]) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int num = Integer.parseInt(br.readLine());
        String[] range = br.readLine().split(" ");

        int count = 0;
        int check = 0;
        for (int i = 0; i < range.length; i++) {

            for (int j=2; j <= Integer.parseInt(range[i]); j++) {
                if ((Integer.parseInt(range[i]) % j) == 0) {
                    check++;
                }
                if(check > 2) {
                    break;
                }
            }
            if (check == 1) {
                count++;
            }
            check = 0;
        }
        bw.write(String.valueOf(count));
        bw.close();

    }

}



내 풀이 해석

2부터 자기 자신까지 나누어서 0으로 떨어지면 check를 증분하고 check가 1보다 크면 반복문을 종료합니다.
check가 1이면 count를 증분하여 소수의 갯수를 저장합니다.


반응형