본문 바로가기
Algorithm

[백준 알고리즘 JAVA] 1978번 소수 찾기

by wook99 2024. 4. 14.

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

 

1978번: 소수 찾기

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

www.acmicpc.net

 

문제

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

입력

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

출력

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

 

 

핵심

1. scanner를 통해 몇개의 정수를 입력받을 건지 입력받는다.

2. 소수의 개수를 담을 int형 변수 count를 선언 및 초기화한다.

3. N만큼 도는 반복문을 만든다.

4. scanner를 통해 소수인지 확인할 int를 입력받고, 약수의 개수를 담을 howMany를 선언 및 초기화한다.

5. 또하나의 반복문을 통해 k를 j로 나누었을 때 약수의 개수를 1씩 추가한다.

6. 소수는 1과 자기 자신만이 약수이므로 howMany가 2개이면 약수이다. 그럴때 count를 1씩 증가시킨다. 

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();
        int count = 0;

        for (int i = 0; i < N; i++) {
            int k = scanner.nextInt();
            int howMany = 0;

            for (int j = 1; j <= k; j++) {
                if(k % j == 0){
                    howMany++;
                }
            }

            if(howMany==2){
                count++;
            }
        }
        System.out.println(count);
    }
}