소수 판별 알고리즘

김관중·2023년 12월 26일
0
post-thumbnail

소수 판별 알고리즘 O(N)

1,2,3,4,5....n

n까지 확인하는 방법이다.

소수 판별 알고리즘 O(sqrt(N))

1,2,3,4,5....sqrt(N)

이는 아래 과정에 의해 시작된다.

A를 합성수 MxN이라고 가정하자.

이때 M>=N이라고 하자.

M^2>=MxN이고,

M>=sqrt(A)이다.

따라서 sqrt(A)까지 확인하면 소수인지 합성수인지 확인할 수 있는 것이다.

소수 판별 알고리즘 O(Nlog(logN))


에라토스테네스의 체는 소수 판별 알고리즘 중에 하나이다.

  1. 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 회색 사각형으로 두른 수들이 여기에 해당한다.
  2. 2는 소수이므로 오른쪽에 2를 쓴다. (빨간색)
    자기 자신을 제외한 2의 배수를 모두 지운다.
  3. 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. (초록색)
    자기 자신을 제외한 3의 배수를 모두 지운다.
  4. 남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. (파란색)
    자기 자신을 제외한 5의 배수를 모두 지운다.
  5. 남아있는 수 가운데 7은 소수이므로 오른쪽에 7을 쓴다. (노란색)
    자기 자신을 제외한 7의 배수를 모두 지운다.
  6. 위의 과정을 반복하면 구하는 구간의 모든 소수가 남는다. (보라색)

위 그림의 경우 11^2 까지만 확인하면 모든 수를 탐색할 수 있기 때문에 10의 배수까지만 확인해보면 되어서 소수 판별 중에는 매우 빠른 알고리즘이라고 볼 수 있다.

시간복잡도의 증명은 https://en.wikipedia.org/wiki/Divergence_of_the_sum_of_the_reciprocals_of_the_primes

profile
꾸준히 학습하기

0개의 댓글

관련 채용 정보