본문 바로가기

코테 준비

백준 1978번 - 소수 찾기(Java)

백준 1978번 - 소수 찾기(Java)

 

문제

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

입력

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

출력

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

풀이 과정

1. 소수는 자신과 1을 제외하면 나눠지지 않는 수 이므로, 2부터 자신 직전의 수 중에 나눠지는 수가 있으면 소수가 아님.

2. 처음 받는 숫자를 전부 소수라고 가정하고, 소수가 아닐 경우에 -1을 해서 최종 답을 얻음.

3. 숫자 1일 경우에는 소수가 아니므로 제외시킴.

 

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = scanner.nextInt();
        int cnt=T;
        for(int i=0; i<T; i++) {
        	int num = scanner.nextInt();
        	if(num>=2) {
        		for(int j=2; j<num; j++) {
        			if(num%j==0) {
        				cnt--;
        				break;
        			}
        		}
        	}
        	else {
        		cnt--;
        	}
        }
        System.out.println(cnt);
    }
}