본문 바로가기
프로그래밍/알고리즘

소수 구하기와 에라토스테네의 체

by 매이나 2023. 4. 27.

소수 구하기

def is_prime(x):
    for i in range(2, int(x ** 0.5) + 1):
        if(x % i == 0):
            return False
    return True

 

x값을 받으면 2부터 x의 제곱근까지 하나하나 x랑 나누어떨어지는지 확인을 해보고 나누어 떨어지면 소수가 아니므로

False 값을 반환하고 나누어 떨어지는게 없으면 소수이므로 True 값을 반환한다.

 

에라토스테네의 체

arr = [0,1] + [i for i in range(2,101)]

for i in range(2, int(100 ** 0.5) + 1):
    if(arr[i] == 0):
    	continue
    for j in range(i + i, 101, i):
    	arr[j] = 0

for i in range(2,len(arr)):
    if(arr[i] != 0):
    	print(arr[i],end=" ")

 

배열을 0 부터 100까지 초기화를 한다.

2부터 100까지 순서대로 약수인지 확인하고 만약 약수면 약수의 배수를 다 0으로 만들어서 지운다.

그렇게 반복을 끝내면 100이하의 소수만 남게 된다.

그리고 마지막으로 그것을 print를 해서 보여준다.

'프로그래밍 > 알고리즘' 카테고리의 다른 글

파이썬 시간복잡도  (0) 2023.05.08

댓글