본문 바로가기

Java/코딩 테스트

수학: 백준 1978 자바(Java) 소수 찾기

반응형

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

 

1978번: 소수 찾기

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

www.acmicpc.net

풀이:

입력 받은 n개의 수를 arr에 저장하고 소수를 판별해주는 함수 isPrime에 arr의 원소를 넘겨주었다.

소수 여부에 따라 true와 false가 리턴되는데, true인 경우에 cnt의 값을 1 늘려 카운트를 해주었다.

 

정답:

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

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());
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int[] arr = new int[n];
        int cnt = 0;

        for (int i = 0; i < n; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }

        for (int i = 0; i < n; i++) {
            if (isPrime(arr[i]) == true) {
                cnt += 1;
            }
        }
        System.out.println(cnt);
    }

    public static boolean isPrime(int number) {
        if (number < 2) {
            return false;
        }
        if (number == 2) {
            return true;
        }
        for (int i = 2; i < number; i++) {
            if (number % i == 0) {
                return false;
            }
        }

        return true;

    }
}

 

반응형