에라토스테네스의 체가 모야

업데이트:

나중에 빨리 복습하고 싶어서 정리합니다.

목차

출처

간단 정리

정말 간단
고려할 포인트

  • 1~n 까지의 구간에 대해서 소수를 구하는 것이다
  • 1, 2, 3 … k 까지 차례로 나눠나갈 때 k^2 > n 을 만족하는 k 까지만 구해보면 된다

구현

  • 1 ~ n 구간의 n 을 input 받아온다
  • n이 0, 1 일 경우 바로 return 한다 (alternative flow)
  • boolean[] 을 n+1 크기로 만들고 다 true로 초기화 한다
  • 0, 1 을 false 처리 한다
  • 2 부터 차례로 걸러내기 시작한다
  • k^2 > n 을 만족하는 k 까지만 걸러 낸다.

비트 마스크를 이용한 최적화 방법?

실제 코딩테스트에서는 k^2 > n 를 이용한 방법이면 충분하다고 나와있어서, 따로 정리하지 않았다. 그리고 이것은 이미 수학적으로 증명된 방법이라 마음 놓고 사용해도 된다.

댓글남기기