반응형
코드
m,n = map(int,input().split())
isPrime = [True for _ in range(n+1)]
isPrime[0]=isPrime[1]= False
for num in range(len(isPrime)) :
if isPrime[num] :
if m<=num and num<=n : print(num)
for i in range(num*2,len(isPrime),num) :
isPrime[i] = False
해설
에라토스테네스의 체를 사용하면 된다!
에라토스테네스의 체는 https://teching.tistory.com/5에 정리해놓았습니다.
에라토스테네스의 체(소수 판별 알고리즘)
유명한 소수 개수 찾기 알고리즘 다수의 소수를 찾을때 사용하는 알고리즘으로 하나의 숫자마다 소수인지 판별하는 것보다 효율적이라 많이 사용한다! 소수의 배수는 소수일수가 없다는 점을
teching.tistory.com
에라토스테네스의 체 과정에서 숫자가 m~n의 범위안에 있으면 소수일경우 출력만 해주면 된다
반응형
'알고리즘 테스트 > 백준' 카테고리의 다른 글
백준 1002 : 터렛 (파이썬) (0) | 2022.01.26 |
---|---|
백준 4948 : 베르트랑 공준 (파이썬) (0) | 2022.01.26 |
백준 11653 : 소인수분해 (파이썬) (0) | 2022.01.25 |
백준 9020 : 골드바흐의 추측 (파이썬) (0) | 2022.01.25 |
백준 1978 : 소수 찾기 (파이썬) (0) | 2022.01.25 |