새소식

알고리즘/문제풀이

백준 - 1978번 소수 찾기

  • -

코드


해당 수가 소수인지 찾는 문제입니다.

에라토스테네스의 체를 사용하면 쉽게 구할 수 있습니다.

자세한 내용은 아래 링크를 참고하세요.

 

https://dokuny-devlog.tistory.com/47

 

알고리즘 - 소수 구하기

소수 (Prime Number) 소수란 자신보다 작은 2개의 자연수를 곱해 만들 수 없는 1보다 큰 자연수를 의미합니다. 알고리즘에서 소수를 구하는 문제가 간혹 나오곤 하기 때문에 어떤 식으로 소수를 구하

dokuny-devlog.tistory.com

 

package baekjoon;

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

public class No_1978 {

	// 에라토스테네스의 체 사용
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int N = Integer.parseInt(br.readLine());

		StringTokenizer st = new StringTokenizer(br.readLine());

		boolean[] notPrime = new boolean[1001];
		notPrime[1] = true;

		for (int i = 2; i <= Math.sqrt(1000) ; i++) {
			if(notPrime[i]) continue;

			for (int j = i + i; j <= 1000 ; j += i) {
				notPrime[j] = true;
			}
		}

		int cnt = 0;
		for (int i = 0; i < N; i++) {
			int cur = Integer.parseInt(st.nextToken());

			if (!notPrime[cur]) {
				cnt++;
			}
		}

		System.out.println(cnt);
	}

}
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.