1929 - 소수 구하기

문제

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.

코드

한마디

여태껏 나는 다음과 같은 방식으로 소수를 판별했다.

count = 0
for i in range(1, N):
    if N % i == 0:
        count += 1

if count == 2:
    print("Prime number")

소수란 1과 자기 자신 외의 약수를 가지지 않는 1보다 큰 자연수이기 때문에 반복문을 돌며 나누어 떨어지는지를 검사했다. 학교 수업 때도 동일하게 배웠는데, 저렇게 푸니까 시간초과가 떴다.

찾아보니 에라토스테네스의 체라는 개념이 나왔고 이를 이용하여 쉽게 풀 수 있었다.