본문 바로가기
Programming/Algorithm

[백준] 1978번 : 소수찾기 (Java)

by 안녕주 2021. 8. 6.

문제

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

입력

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

출력

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


코드

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int N = sc.nextInt();
        int count = 0;
        

        for(int i = 0; i < N; i++){
            int k = sc.nextInt();
            boolean Test = true;

            if (k == 1){
                continue;
            }
            for (int j = 2; j <= Math.sqrt(k); j++){
                if ( k % j == 0){
                    Test = false;
                    break;
                }
            }
            if (Test){
                count++;
            }
        }
        System.out.println(count);
    }
}

풀이

소수.... 처음에 너무 생각 없이 코드를 짰다가 틀렷다. 그래서 구글링을 통해 문제를 풀었다.

 

여기서 포인트는 

1.  1은 소수가 아니다

2.   2 ~ k의 제곱근까지 중 나누어 떨어지는 것이 있는지 판별

3.  2,3인 경우는 자연스럽게 통과 되여 coun++된다.

댓글