티스토리 뷰

Algorithm

[백준 1978번] 자바/소수 찾기

도도고영 2022. 9. 20. 14:17

문제

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

입력

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

출력

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


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

public class BJ1978 {
	public static void main(String[] args) throws NumberFormatException, IOException {
	
		boolean isPrimeNum[] = new boolean[1001];
		
		for (int i = 0; i < isPrimeNum.length; i++) {
			isPrimeNum[i] = true;
		}
		
		isPrimeNum[0] = isPrimeNum[1] = false;
			
		for (int i = 0; i < isPrimeNum.length; i++) {
			if(isPrimeNum[i]) {
				for (int j = 2; i * j < 1001; j++) {
					isPrimeNum[i * j] = false; 
				}
			}
		}
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		
		int cnt = 0;
		
		for (int i = 0; i < n; i++) {
			if(isPrimeNum[Integer.parseInt(st.nextToken())]) {
				cnt++;
			}
		}
		
		System.out.println(cnt);
	}
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함