BOJ 1978

2020-02-06

위 문제는 백준 사이트의 알고리즘 1978 문제에 관한 설명입니다.


문제

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

입력

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

출력

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


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int primeNumber = 0;
        for (int i = 0; i < N; i++) {
            int number = scanner.nextInt();
            if (checkPrimeNumber(number) == true)
                primeNumber++;
        }
        System.out.println(primeNumber);
    }

    private static boolean checkPrimeNumber(int number) {
        int temp = number;
        boolean answer = true;
        if (temp == 1) {
            answer = false;
        } else {
            for (int i = 2; i < temp; i++) {
                if (temp % i == 0)
				{
					answer = false;
					break;
				}
            }
        }
        return answer;
    }
}


제가 푼 소스코드입니다.

코드 설명

N을 받았을 때, 본인과 1로만 약수가 있는 수를 소수라고 합니다. 따라서 (temp % i == 0)를 이용해서 풀어보았습니다. 간단한 문제입니다.

소수찾기