반응형
소수 구하기 성공
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
2 초 | 256 MB | 142922 | 40006 | 28287 | 26.791% |
문제
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
출력
한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
예제 입력 1
3 16
예제 출력 1
3
5
7
11
13
코드
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에 정리해놓았습니다.
에라토스테네스의 체 과정에서 숫자가 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 |