Algorithm/개념
에라토스테네스의 체(Eratosthenes' sieve )
느낌표 공장장
2021. 6. 18. 19:23
에라토스테네스의 체(Eratosthenes' sieve )
그리스의 수학자이자 지리학자인 에라토스테네스가 고안한 소수를 찾는 방법이다.
에라토스테네스의 체 알고리즘
1. 1부터 n까지의 자연수를 전부 나열한다.
2. 소수도, 합성수도 아닌 1을 지운다.
3. 남아 있는 자연수 중 가장 작은 수인 2 의 배수들을 모두 지운다.
4. 남아 있는 자연수 중 가장 작은 수인 3의 배수들을 모두 지운다.
5. 남아 있는 자연수 중 가장 작은 수는 소수다. 이 수의 배수들을 모두 지운다.
6. 남은 자연수 중 가장 작은 수가 n의 제곱근을 넘을 때까지 과정 5를 반복하면, 남아 있는 수가 모두 소수다.
코드로 표현하기(Python)
number = [False, False] + [True] * n
answer = []
for i in range(2, n+1) :
if number[i] :
answer.append(i)
for j in range(i*i, n+1, i) :
number[j] = False
* set 활용하는 방법
num = set(range(2, n+1))
for i in range(2, n+1):
if i in num:
num -= set(range(i*i, n+1, i))
참조
https://terms.naver.com/entry.naver?docId=1179083&cid=40942&categoryId=32204
https://terms.naver.com/entry.naver?docId=3405213&cid=47324&categoryId=47324