[Python]Sieve Of Eratosthenes(에라토스테네스의 체)
에라토스테네스의 체
- 모든 소수(Prime number)를 찾는 방법
- 자기와 자기 자신만이 나눠질 수 있는 수
def SieveOfEratosthenes(n):
# Create a boolean array => prime배열(True로 초기화)
# prime배열이 True면 소수 출력, False면 출력X
prime = [True for i in range(n+1)]
p=2 # 1은 소수가 아니라서 2부터 시작
while(p*p <= n):
if(prime[p] == True): # 소수아닌것들 False로 만드는 작업시작
for i in range(p*p, n+1, p):
prime[i] = False
p += 1
for p in range(2, n+1):
if prime[p]: # True라면
print(p) # 출력
if __name__ == '__main__': # main함수인것이다.
n=100
SieveOfEratosthenes(n)
# 핵심코드는 이부분이다. 이부분이 소수를 구하는 과정이다.
while(p*p <= n):
if(prime[p] == True): # 소수아닌것들 False로 만드는 작업시작
for i in range(p*p, n+1, p):
prime[i] = False
p += 1
댓글남기기