정수론 : 소수 구하기 에라토스테네스의 채
2024. 2. 16. 16:17ㆍ코딩 도구/글
반응형
소수
소수 구하기의 핵심 이론
소수를 구하는 대표적인 판별법으로는 에라토스테네스의 체를 들 수 있다. 에라토스테네스의 체 원리는 다음과 같다.
① 구하고자 하는 소수의 범위만큼 1차원 리스트를 생성한다.
② 2부터 시작하고 현재 숫자가 지워진 상태가 아닌 경우 현재 선택된 숫자의 배수에 해당하는 수를 리스트에서 끝까지 탐색하면서 지운다. 이때 처음으로 선택된 숫자는 지우지 않는다.
③ 리스트의 끝까지 ②를 반복한 후 리스트에서 남아 있는 모든 수를 출력한다.
에라토스테네스의 체를 사용할 때 시간 복잡도
일반적으로 에라토스테네스의 체를 구현하려면 이중 for문을 이용하므로 시간 복잡도가 O(N^2) 정도라고 판단할 수 있다. 하지만 실제 시간 복잡도는 최적화의 정도에 따라 다르겠지만, 일반적으로 O(Nlog(logN))이다. 그 이유는 배수를 삭제하는 연산으로 실제 구현에서 바깥쪽 for문을 생략하는 경우가 빈번하게 발생하기 때문이다. 이러한 이유 때문에 에라토스테네스의 체 기법은 현재에도 코딩 테스트에서 소수를 구하는 일반적인 방법으로 통용되고 있다.
관련 문제
백준
1929 | 소수 구하기 | 성공 | 55737 | 269080 | 27.457% |
1456 | 거의 소수 | 2393 | 13957 | 24.002% | |
1747 | 소수&팰린드롬 | 6486 | 27114 | 30.501% | |
1016 | 제곱 ㄴㄴ 수 | 8445 | 61807 | 21.765% |
책 <Do It! 알고리즘 코딩테스트>_김종관 지음, 이지스퍼블리싱 출판사
학교 알고리즘 수업 강의자료 등 여러 자료 참고해서 공부함.
반응형
'코딩 도구 > 글' 카테고리의 다른 글
정수론 : 유클리드 호제법 (35) | 2024.02.18 |
---|---|
정수론 : 오일러 피 (35) | 2024.02.17 |
그리디 알고리즘과 우선순위 큐 (37) | 2024.02.15 |
탐색 알고리즘 정리 (41) | 2024.02.11 |
그래프의 표현 (알고리즘, 자료구조) (32) | 2024.02.10 |