백준|1929번|소수 구하기

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
23/136

문제설명
두 숫자를 입력받고 그 사이의 소수를 출력하는 문제입니다.

작동 순서
1. 두 숫자를 입력받습니다.
2. 2부터 마지막숫자까지 True로 지정해줍니다.
3. 2부터 시작해서 True인 자릿수의 배수인 자릿수의 값을 False로 지정합니다.
4. 반복문이 끝나면 값이 True인 자릿수를 출력합니다.

소스코드

import sys
M, N = map(int, sys.stdin.readline().split())
prime = [False, False]+[True]*(N-1)
for i in range(2, N):
    if prime[i]:
        j = 2
        while i*j <= N:
            prime[i*j] = False
            j += 1
for i in range(M, N+1):
    if prime[i]:
        print(i)

후기
에라토스테네스의 체를 활용하는 문제인데 아직 에라토스테네스의 체를 정확하지 이해하지 못 한것 같습니다. 알고리즘을 배우기 위해서는 수학도 매우 중요한 것 같다는 생각이 듭니다.

profile
INTP 개발자 지망생

0개의 댓글