본문 바로가기

코딩테스트 준비

에라토스테네스의 체 - n 이하의 소수를 모두 구하는 알고리즘

  1. 2부터 N까지 모든 정수를 적는다.
  2. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다.
  3. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다.
  4. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다.

먼저 2~n까지의 정수가 든 리스트를 만든다. 이후 소수들을 저장하는 리스트를 생성한다. 정수 리스트가 빌 때까지 반복문을 돌린다. 이 때 정수 리스트의 맨 첫 번째 값이 소수가 되며, 이후 해당 소수의 배수들을 모두 리스트에서 삭제한다. 반복문이 끝나면 소수 리스트 안에 모든 소수가 들어간다. 

'코딩테스트 준비' 카테고리의 다른 글

파이썬 itertools permutations!  (0) 2021.03.04
최소 신장(스패닝) 트리 - 크루스 칼 알고리즘!!  (0) 2021.02.27
스택 문제 stack  (0) 2021.02.26
위상 정렬!  (0) 2021.02.26
위상 정렬!  (0) 2021.02.26