3 - 에라토스테네스의 체 (소수를 찾는 방법)

3411 단어 pythonTILTIL

에라토스테네스의 체

  • 범위에서 합성수를 지우는 방식으로 소수를 찾는 방법.

1을 제외한, 2부터 지워지지 않은 수 중 가장 작은 수를 소수로 지정하고 배수를 지우는 과정을 반복한다.

1. 2를 소수로 채택하고, 자신을 제외한 2의 배수를 모두 지운다.
2. 다음 지워지지 않은 수 3을 소수로 채택하고, 3의 배수를 모두 지운다.
3. 다음 지워지지 않은 수 5를 소수로 채택하고, 5의 배수를 모두 지운다.
4. 이후 7, 11, 13 ..... 등 위의 과정을 반복하며 소수를 체크한다.

에라토스테네스의 체를 파이썬으로 구현해 보자.

def prime(n):
	primes = []
    a = [True] * (n - 1)
    
    for i in range(2, n + 1):
    	if a[i - 2] == True:
        	primes.append(i)
            for j in range(i * 2, n + 1, i):
            	a[j - 2] = False
    return primes


출처
코딩으로 수학하기, https://wikidocs.net/21638
위키, https://ko.wikipedia.org/에라토스테네스의_체
https://velog.io/@htchoi1006

좋은 웹페이지 즐겨찾기