본문 바로가기
  • 개발 삽질 블로그
프로그래밍/백준 문제풀이

백준 1978: 소수찾기(JAVA)

by 갹둥 2022. 8. 20.

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

 

1978번: 소수 찾기

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

www.acmicpc.net

이전 소수 관련 문제 풀이와 비슷하다. 1000이하의 자연수에 대해 판별하는 것이기 때문에 1부터 1000까지 소수인지 아닌지를 미리 구해주고 prime이라는 boolean 배열에 담아준다. 2부터 1000까지 배수인 것을 소수가 아니라고 표시한다. 아래 코드에서는 prime[i]가 false이면 i는 소수이다.

 

import java.util.*;

public class Main {
	public static void main(String[] args){
		
		Scanner sc = new Scanner(System.in);
		int N;
		int a, cnt=0;
		
		boolean[] prime = new boolean[1001];
		prime[1] = true;
		
		for(int i=2; i<1001; i++) {
			if(prime[i])
				continue;
			
			for(int j=2; i*j<1001; j++)
				prime[i*j]=true;
		}
		
		N=sc.nextInt();
		for(int i=0; i<N; i++) {
			a=sc.nextInt();
			if(!prime[a])
				cnt++;
		}
		
		System.out.println(cnt);
	}
}

'프로그래밍 > 백준 문제풀이' 카테고리의 다른 글

백준 2309: 일곱 난쟁이[JAVA] / 투포인터  (0) 2022.10.03
C로 푼 문제들  (0) 2022.09.07
백준 17425: 약수의 합(JAVA)  (0) 2022.08.18
백준 17427: 약수의 합 2  (0) 2022.08.18
백준 1037: 약수  (0) 2022.08.12