[백준_1978] 소수 찾기 - JAVA

문제 출처

https://www.acmicpc.net/problem/1978

풀이

  1. 소수 판별하고자 하는 숫자의 제곱근까지 2부터 시작하는 for문을 돌려 나누어 떨어지는지 확인을 해보면 된다. (일반적인 방법)
  2. 에라토스테네스의 체를 이용해서 소수를 판별할 수 있지만 이 문제와는 어울리지 않는 것 같다.

코드

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());

        int N = Integer.parseInt(stringTokenizer.nextToken());
        stringTokenizer = new StringTokenizer(bufferedReader.readLine());
        int result = 0;
        for (int i = 0; i < N; i++) {
            int number = Integer.parseInt(stringTokenizer.nextToken());
            if (number == 1) continue;
            boolean isPrimeNumber = true;
            for (int j = 2; j <= Math.sqrt(number); j++) {
                if (number % j == 0) {
                    isPrimeNumber = false;
                }
            }
            if (isPrimeNumber) result++;
            else continue;
        }
        System.out.println(result);
    }
}

채점 결과

좋은 웹페이지 즐겨찾기